#memory #peak #alloc #instrument #mem

peakmem-alloc

一个允许测量峰值内存消耗的分配器包装器

5个不稳定版本

0.3.0 2024年3月18日
0.2.2 2024年3月18日
0.2.1 2024年3月18日
0.2.0 2024年3月18日
0.1.0 2023年4月5日

#163 in 内存管理

Download history 33/week @ 2024-04-01 201/week @ 2024-04-22 155/week @ 2024-05-06 106/week @ 2024-05-13 208/week @ 2024-05-20 39/week @ 2024-05-27 65/week @ 2024-06-03 43/week @ 2024-06-10 25/week @ 2024-06-17 26/week @ 2024-06-24 49/week @ 2024-07-01 14/week @ 2024-07-08 23/week @ 2024-07-15

每月 113 次下载
2 个Crates中使用(通过 binggan

MIT 许可证

8KB
120

peakmem_alloc

Rust全局分配器的监控中间件,用于查找函数消耗的峰值内存。

示例

use peakmem_alloc::*;
use std::alloc::System;

#[global_allocator]
static GLOBAL: &PeakMemAlloc<System> = &INSTRUMENTED_SYSTEM;

#[test]
fn example_using_region() {
    GLOBAL.reset_peak_memory(); // Note that other threads may impact the peak memory computation.
    let _x: Vec<u8> = Vec::with_capacity(1_024);
    println!(
        "Peak Memory used by function : {:#?}", 
        GLOBAL.get_peak_memory()
    );
}

自定义分配器

您可以将现有分配器包装如下

use jemallocator::Jemalloc;
use peakmem_alloc::*;

#[global_allocator]
static GLOBAL: PeakMemAlloc<Jemalloc> = PeakMemAlloc::new(Jemalloc);


lib.rs:

一个用于计算(作用域内)峰值内存消耗的监控分配器包装器。

示例

use peakmem_alloc::*;
use std::alloc::System;

#[global_allocator]
static GLOBAL: &PeakMemAlloc<System> = &INSTRUMENTED_SYSTEM;

fn main() {
   GLOBAL.reset_peak_memory();
   let _x: Vec<u8> = Vec::with_capacity(1_024);
   println!(
       "Peak Memory used by function : {:#?}",
       GLOBAL.get_peak_memory()
   );
}

无运行时依赖