11个版本
使用旧的Rust 2015
0.1.10 | 2022年3月30日 |
---|---|
0.1.9 | 2022年3月30日 |
0.1.8 | 2019年5月13日 |
0.1.6 | 2018年8月3日 |
#29 in 内存管理
695,174 个月下载量
用于 17 crates
13KB
188 行
stats_alloc
用于Rust的全局分配器的仪表化中间件,在测试中用于验证关于分配模式的假设,以及在可能的生产负载中用于监测内存泄漏。
示例
extern crate stats_alloc;
use stats_alloc::{StatsAlloc, Region, INSTRUMENTED_SYSTEM};
use std::alloc::System;
#[global_allocator]
static GLOBAL: &StatsAlloc<System> = &INSTRUMENTED_SYSTEM;
fn example_using_region() {
let reg = Region::new(&GLOBAL);
let x: Vec<u8> = Vec::with_capacity(1_024);
println!("Stats at 1: {:#?}", reg.change());
// Used here to ensure that the value is not
// dropped before we check the statistics
::std::mem::size_of_val(&x);
}
自定义分配器
由于即将稳定的未稳定特性 const_fn_trait_bound
的使用和仪表化类型的内部不公开,目前使用自定义分配器需要使用夜间编译器和编译“夜间”功能。如果您没问题,可以将自定义分配器包装如下
#[global_allocator]
static GLOBAL: StatsAlloc<System> = StatsAlloc::new(MyCustomAllocator::new());