8个版本 (4个重大更新)
0.5.2 | 2021年6月22日 |
---|---|
0.5.1 | 2020年10月29日 |
0.4.0 | 2020年9月20日 |
0.3.0 | 2020年9月19日 |
0.1.0 | 2020年8月4日 |
在内存管理中排名491
每月下载次数23
79KB
1.5K SLoC
redox-buffer-pool
这是一个小型库,提供了一个通用的O(log n)内存分配器,适用于小型(目前为32位)和可能短暂的生命周期分配。它还包含一个“保护”机制,可以防止池在使用中被其他进程回收。
虽然这个crate的名称以Redox开头,但它也可以在其他操作系统上使用;redox_syscall crate仅用于启用redox功能时,并且它所做的只是添加一些错误代码转换。
lib.rs
:
redox-buffer-pool
这个crate提供了一般用途的缓冲池,支持在池内分配切片,以及通过非相邻的更大的底层内存分配(如mmap(2)或其他更大的可能的页大小分配)来扩展池。
当前的分配器使用一个B树将空间划分为标记为已占用或空闲的区域。B树使用的键有一个自定义的比较器,确保已用范围的键在空闲范围的键之后。这,加上有一个空闲空间树,使得在O(log n)内获取缓冲区切片成为可能,前提是已经有一个对齐的范围(否则,它将简单地以O(n)的速度进行线性搜索,直到找到足够大的范围以解决不匹配)。
依赖项
~79–445KB