#分配器 #全局分配器 #玩具 #索引 #分配 #静态 #区域

index_alloc

一个简单的玩具静态分配器,可以作为全局分配器

2个版本

0.1.1 2024年5月16日
0.1.0 2024年5月4日

#195内存管理

Download history 146/week @ 2024-04-30 9/week @ 2024-05-07 148/week @ 2024-05-14 15/week @ 2024-05-21 4/week @ 2024-06-11

每月 73 次下载

MIT 协议

39KB
816

Index Alloc

一个简单、玩具般的静态分配器,使用固定长度数组存储分配的数据。

此crate公开一个名为IndexAllocator的结构体,它实现了GlobalAlloc,因此可以作为在no_std环境中的全局分配器使用。

缺点

  • 极其不安全
  • 非常慢
  • 内存效率低下

尽管它看起来不可用,但它有很多优点

  • 开玩笑的,不要使用它

为了存储分配的内存,IndexAllocator使用一个MemoryIndex,该索引存储一个包含区域状态的区域列表(大小、起始地址、使用状态)。例如

use index_alloc::IndexAllocator;

#[global_allocator]
static ALLOCATOR: IndexAllocator<2048, 16> = IndexAllocator::empty();

fn main() {
    let test_str = String::from("Hello World");
    println!("{test_str}");
}

请参阅Repository's 示例中的更多示例。

无运行时依赖