5个版本
使用旧Rust 2015
0.1.4 | 2017年5月31日 |
---|---|
0.1.3 | 2016年9月16日 |
0.1.2 | 2016年9月16日 |
0.1.1 | 2016年9月4日 |
0.1.0 | 2016年9月4日 |
#1705 在 嵌入式开发
每月 36次下载
86KB
1.5K SLoC
defrag: 微控制器安全且高效的内存管理器
此库处于Beta阶段,可能会发生变化
此库旨在将安全的堆内存管理带到微控制器。结合Rust出色的类型系统和借用检查器,在资源有限的情况下创建复杂应用程序比以往任何时候都更容易。
文档
请参阅库文档:https://docs.rs/defrag
问题
如果您发现任何错误或功能请求,请提交到
lib.rs
:
defrag: 微控制器安全且高效的内存管理器
此库处于Beta发布阶段,可能会发生变化
此库旨在将安全的堆内存管理带到微控制器。结合Rust出色的类型系统和借用检查器,在资源有限的情况下创建复杂应用程序比以往任何时候都更容易。
碎片化的可能性是微控制器上不使用动态内存分配的主要原因。正如其名所示,defrag能够整理内存,从而解决潜在的碎片化问题。每个分配块的额外开销仅为8字节,因此分配非常经济。
工作原理
内存的主要管理器是Pool
,用户可以从其中调用Pool.alloc::<T>()
或Pool.alloc_slice::<T>(len)
。从这些中,他们将获得一个类似rust's stdlib Mutex
的Mutex
对象。
当数据未锁定时,底层池允许将其移动以解决潜在的碎片化问题。pool.clean()
组合连续的空闲块,而pool.defrag()
整理内存。此外,还有各种利用空闲内存块的策略。
注意:此库仅适用于(单线程)微控制器,因此它的
Mutex
没有实现Send
或Sync
(它不能在线程之间共享)。根据微控制器Rust代码中出现的不同架构或操作系统,这可能会有所变化。