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次下载
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]);
其他功能包括
- 以特定内存对齐方式分配。
- 分配字符串。
- 可配置的增长策略。
许可证
此项目根据您的选择,许可为以下之一
- Apache许可证版本2.0,(LICENSE-APACHE 或 http://www.apache.org/licenses/LICENSE-2.0)
- MIT许可证 (LICENSE-MIT 或 http://opensource.org/licenses/MIT)
。
贡献
除非您明确声明,否则您提交给Kioku的任何有意贡献都将按照上述方式许可,没有任何额外的条款或条件。