1 个不稳定版本
使用旧的 Rust 2015
0.1.0 | 2017年9月3日 |
---|
#25 在 #bootstrap
用于 elfmalloc
71KB
1K SLoC
bsalloc
:一个全局的、no-std
动态内存分配器。
该包实现了一个非常简单的全局分配器。它用于为其他仓库中动态分配器的依赖项提供服务。换句话说,这是用来在没有创建对另一个 malloc 实现的无谓依赖的情况下,bootstrap 本仓库中更高效的分配器。
结构
分配器是 mmap
的一个薄包装器。我们不是简单地直接调用 mmap
和 munmap
进行动态分配(这在一些微基准测试中会减慢速度),而是有两个“大小类别”,每个类别都有一个固定大小的全局缓存。这些缓存有一个线程安全的接口,允许一个线程高效地重用它或另一个线程释放的内存。自然地,大于最大大小类别的分配将回退到直接使用 mmap
。
依赖
~235–510KB