5个版本
0.1.6 | 2022年2月14日 |
---|---|
0.1.4 | 2020年5月16日 |
0.1.2 | 2019年1月22日 |
0.1.1 | 2017年11月4日 |
0.1.0 | 2017年11月4日 |
#370 在 内存管理
22 每月下载量
18KB
254 行
dynamic-arena

动态类型化的内存区域,支持任何Sized
类型。
特性
- 内存区域分配非常快,通常只需要指针弹跳
- 可以静态保证指针在内存区域生命周期内有效
- 遗憾的是这意味着内存区域只能一次性释放
- 允许创建自引用的内存区域分配结构体
- 而不是使用多个
typed_arena::Arena
,您可以使用一个DynamicArena
- 这有助于理解代码并显著减少内存使用
- 由于所有内存都是连续的,甚至可能有助于提高缓存性能。
- 在最新稳定版本上编译
缺点
- 对于非
Copy
类型的分配速度略慢于typed_arena::Arena
- 这是因为析构是动态分发的
- 为了保持安全性,分配项中的所有指针必须比内存区域本身存在的时间更长,这样项就不会比它们指向的项存活时间更长。
- 这静态阻止了使用
alloc
的自引用结构体 - 但是,您仍然可以使用
alloc_copy
- 有关如何使用此功能的更多信息,请参阅文档的安全性部分
依赖项
~240KB