#memory-allocator #allocation #free #global-allocator #polymorph #locked-allocator

nightly polymorph-allocator

简单的内存分配器

7个版本 (4个稳定版本)

1.2.0 2020年11月16日
1.1.0 2020年5月21日
1.0.0 2020年4月21日
0.1.0 2019年10月29日

#506 in 内存管理

每月 32 次下载

MIT 许可证

32KB
618 行代码

polymorph-allocator

一个简单的Rust内存分配器,为polymorphOS设计。

该crate深受awooOS/dmm的启发,这是一个用于裸机使用的简单C内存分配器。

在其当前状态下,polymorph-allocator是可用的,但它对于大量的小型分配可能较慢。这是其设计的一个副作用——每次分配都需要遍历整个已分配块列表,直到找到空闲块。

polymorph-allocator的下一次主要版本计划完全改变分配方式,这将提高其速度,但也会增加其复杂性。当前版本的polymorph-allocator非常易于理解,因此它可以作为一个很好的学习工具。谁知道呢。

用法

use polymorph_allocator::LockedAllocator;

#[global_allocator]
pub static ALLOCATOR: LockedAllocator = LockedAllocator::empty();

fn main() {
    // For a 32MB heap starting at 1MB in RAM:
    ALLOCATOR.lock().add_region(0x100000, 0x2000000);
}

许可证

polymorph-allocator在MIT许可证下授权,与polymorphOS的其余部分相同。

您可以在该仓库顶层中的LICENSE文件中找到此许可证。

依赖项

~255KB