23个版本
0.10.0 | 2024年7月1日 |
---|---|
0.9.1 | 2024年1月27日 |
0.9.0 | 2022年12月14日 |
0.8.0 | 2021年4月22日 |
0.1.2 | 2019年3月18日 |
#43 在 内存管理 中
每月下载量 13,681
用于 5 个Crates (4个直接使用)
31KB
627 行
buddy_system_allocator
是phil-opp/linked-list-allocator的(几乎)直接替代品。但它使用的是伙伴系统。
用法
要使用buddy_system_allocator作为全局分配器
use buddy_system_allocator::LockedHeap;
#[global_allocator]
static HEAP_ALLOCATOR: LockedHeap = LockedHeap::<32>::empty();
初始化分配器
unsafe {
HEAP_ALLOCATOR.lock().init(heap_start, heap_size);
// or
HEAP_ALLOCATOR.lock().add_to_heap(heap_start, heap_end);
}
您还可以使用FrameAllocator
和LockedHeapWithRescue
,请参阅它们的文档以了解用法。
特性
alloc
(默认):提供FrameAllocator
和LockedFrameAllocator
,它们依赖于全局分配器。use_spin
(默认):提供一个实现GlobalAlloc
特质的LockedHeap
类型,使用自旋锁。
许可协议
部分代码来自phil-opp的linked-list-allocator。
在MIT许可协议下发布。感谢phil-opp的linked-list-allocator带来的灵感和接口。
依赖项
~37KB