1个不稳定版本

0.1.0 2022年8月22日

#442内存管理

Download history 153/week @ 2024-03-14 110/week @ 2024-03-21 135/week @ 2024-03-28 115/week @ 2024-04-04 90/week @ 2024-04-11 70/week @ 2024-04-18 52/week @ 2024-04-25 42/week @ 2024-05-02 48/week @ 2024-05-09 52/week @ 2024-05-16 34/week @ 2024-05-23 52/week @ 2024-05-30 63/week @ 2024-06-06 55/week @ 2024-06-13 60/week @ 2024-06-20 51/week @ 2024-06-27

每月下载量238

MIT/Apache

140KB
2.5K SLoC

acid_alloc

CI crates-io api-docs

裸机分配器。

该crate提供了适用于裸机或与操作系统分配设施(如mmap(2)/brk(2))配合使用的分配器。

以下分配器类型可用

  • Buddy,二叉伙伴分配器. O(log2 levels)最坏情况下的分配和释放。支持通过2的幂次分裂和合并块。适用于周期性中等或大型分配。
  • Bump,Bump分配器. O(1)分配。分配非常快,在分配布局方面非常灵活,但不能释放单个项目。适用于永远不会释放或一次性大量释放的分配。
  • Slab,Slab分配器. O(1)分配和释放。所有分配的块大小相同,这使得该分配器在分配许多大小相似的物体时是一个不错的选择。

功能

此crate提供的所有分配器都在#![no_std]环境中可用。启用功能标志时提供额外的功能。

标志 默认? 需要nightly版本? 描述
sptr 使用sptr polyfill来实现严格来源。
不稳定 公开由实现不稳定Allocator trait的分配器支持的构造函数,并启用nightly-only Rust功能的内部使用。取代sptr
alloc 公开由全局分配器支持的分配器支持的构造函数。

致谢

本包包含稳定兼容的polyfills,用于实现多个不稳定的标准库API。以下列出了这些功能及其作者和维护者:

此包还依赖于sptr(亦由Gankra编写)以在稳定Rust中重现严格来源的正常指针。

如果我对任何工作的归属有误,或者遗漏了某个功能的贡献者,请提出问题!

许可证

在以下任一许可证下许可:

任选其一。

贡献

除非你明确说明,否则根据Apache-2.0许可证定义的,你有意提交给作品的所有贡献都应按上述方式双许可,不附加任何额外条款或条件。

依赖项