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

Apache-2.0 OR MIT

480KB
4.5K SLoC

ialloc

Rust 的分配器接口特性

GitHub crates.io docs.rs unsafe: very License Build Status

存在意义

  • 为什么不使用 core::alloc::Allocator / allocator_api
    • 7 年以上未稳定,且仍在继续。
    • 我希望在这个十年内实现容器分配,谢谢!
    • 如果/当它稳定时,我们可以努力与之兼容和互操作,或者通过单独的 nightly crates。
  • 为什么不使用 core::alloc::GlobalAlloc
    • Win32 的 FreeSid 没有等效的任意分配函数来实现 GlobalAlloc::alloc
    • bgfx::alloc 没有等效的任意释放函数来实现 GlobalAlloc::dealloc
    • 分割 alloc/free/realloc 特性将有助于避免错误和使用不当!
    • 话虽如此,我们可以努力与之兼容和互操作。
  • Rust 风格的特性很难适应 C 风格的分配器。这提供了更多 C 友好的特性选项。

范围之外

  • NUMA?虽然稍后再问。
  • 物理 GPU 内存分配,可能。可能值得有一个相关的 crate?
  • ID/handle 分配,可能。可能值得有一个相关的 crate?

许可

根据您的选择,许可如下:

贡献

除非您明确声明,否则根据Apache-2.0许可证定义的,您有意提交供工作包含的贡献,应如上双授权,不附加任何额外条款或条件。

依赖项

~0.3–1.4MB
~14K SLoC