4个版本 (2个破坏性更新)

0.3.1 2021年5月11日
0.3.0 2019年12月27日
0.2.0 2019年12月26日
0.1.0 2019年12月25日

#257 in 内存管理

每月22次下载

MIT/Apache

24KB
301

Kioku

为Copy类型提供可扩展的内存竞技场。

此竞技场通过在单个大块内存中逐块分配内存来工作,并按线性顺序从当前块中分配内存,直到其空间耗尽。

此外,它还通过一些启发式方法尝试最小化浪费的空间,并对大于块大小的分配请求进行特殊处理。

一些虚构的示例用法

let arena = Arena::new().with_block_size(1024);

let integer = arena.alloc(42);
let array1 = arena.copy_slice(&[1, 2, 3, 4, 5, 42]);
assert_eq!(*integer, array1[5]);

*integer = 16;
array1[1] = 16;
assert_eq!(*integer, array1[1]);

let character = arena.alloc('A');
let array2 = arena.alloc_array('A', 42);
assert_eq!(array2.len(), 42);
assert_eq!(*character, array2[20]);

*character = '';
array2[30] = '';
assert_eq!(*character, array2[30]);

其他功能包括

  • 以特定内存对齐方式分配。
  • 分配字符串。
  • 可配置的增长策略。

许可证

此项目根据您的选择,许可为以下之一

贡献

除非您明确声明,否则您提交给Kioku的任何有意贡献都将按照上述方式许可,没有任何额外的条款或条件。

无运行时依赖