3个不稳定版本
0.2.1 | 2023年11月8日 |
---|---|
0.2.0 | 2023年3月22日 |
0.1.0 | 2023年3月14日 |
#430 在 嵌入式开发
每月 26次下载
用于 lorawan
8KB
97 行
Trallocator
一个简单的no_std
库,用于包装现有分配器和跟踪堆使用情况。主要用途是跟踪嵌入式系统中的堆使用情况
使用方法
只需将现有的分配器包装在Trallocator
中。
示例
使用另一个分配器,这里我们使用系统分配器
extern crate alloc;
extern crate std;
use alloc::vec::Vec;
use std::alloc::System;
use trallocator::Trallocator;
#[global_allocator]
static ALLOCATOR: Trallocator<System> = Trallocator::new(System);
fn main() {
let init = ALLOCATOR.usage();
let mut vec: Vec<u8> = Vec::new();
vec.reserve_exact(32);
assert_eq!(ALLOCATOR.usage(), init+32);
}
使用分配器API
#![feature(allocator_api)]
extern crate alloc;
extern crate std;
use alloc::vec::Vec;
use std::alloc::System;
use trallocator::Trallocator;
let tralloc: Trallocator<System> = Trallocator::new(System);
assert_eq!(tralloc.usage(), 0);
let mut vec: Vec<u8, _> = Vec::new_in(&tralloc);
vec.reserve_exact(32);
assert_eq!(tralloc.usage(), 32);
许可证
根据以下之一获得许可:
-
Apache License, Version 2.0 (LICENSE-APACHE 或 http://www.apache.org/licenses/LICENSE-2.0)
-
MIT许可证 (LICENSE-MIT 或 http://opensource.org/licenses/MIT)
任选其一。
贡献
除非你明确声明,否则根据Apache-2.0许可证定义,你故意提交以包含在作品中的任何贡献都应双许可如上所述,没有任何额外的条款或条件。