6 个版本
0.0.0-2023-05-28 | 2024年1月26日 |
---|---|
0.0.0-2023-05-13 | 2023年5月13日 |
0.0.0-2023-05-06 | 2023年5月7日 |
0.0.0-2023-05-05 | 2023年5月5日 |
0.0.0-2023-05-03 | 2023年5月3日 |
#143 in 内存管理
用于 valrow
480KB
4.5K SLoC
ialloc
Rust 的分配器接口特性
存在意义
- 为什么不使用
core::alloc::Allocator
/allocator_api
?- 7 年以上未稳定,且仍在继续。
- 我希望在这个十年内实现容器分配,谢谢!
- 如果/当它稳定时,我们可以努力与之兼容和互操作,或者通过单独的 nightly crates。
- 为什么不使用
core::alloc::GlobalAlloc
?- Win32 的
FreeSid
没有等效的任意分配函数来实现GlobalAlloc::alloc
。 bgfx::alloc
没有等效的任意释放函数来实现GlobalAlloc::dealloc
。- 分割 alloc/free/realloc 特性将有助于避免错误和使用不当!
- 话虽如此,我们可以努力与之兼容和互操作。
- Win32 的
- Rust 风格的特性很难适应 C 风格的分配器。这提供了更多 C 友好的特性选项。
范围之外
- NUMA?虽然稍后再问。
- 物理 GPU 内存分配,可能。可能值得有一个相关的 crate?
- ID/handle 分配,可能。可能值得有一个相关的 crate?
许可
根据您的选择,许可如下:
- Apache 许可证版本 2.0 (LICENSE-APACHE 或 http://www.apache.org/licenses/LICENSE-2.0)
- MIT 许可证 (LICENSE-MIT 或 http://opensource.org/licenses/MIT)
。
贡献
除非您明确声明,否则根据Apache-2.0许可证定义的,您有意提交供工作包含的贡献,应如上双授权,不附加任何额外条款或条件。
依赖项
~0.3–1.4MB
~14K SLoC