5 unstable releases
0.3.0 | Mar 18, 2024 |
---|---|
0.2.2 | Mar 18, 2024 |
0.2.1 | Mar 18, 2024 |
0.2.0 | Mar 18, 2024 |
0.1.0 | Apr 5, 2023 |
#224 in Memory management
860 downloads per month
Used in 2 crates
(via binggan)
8KB
120 lines
peakmem_alloc
An instrumenting middleware for global allocators in Rust, useful to find the peak memory consumed by a function.
Example
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()
);
}
Custom allocators
You can wrap your existing allocator as follows:
use jemallocator::Jemalloc;
use peakmem_alloc::*;
#[global_allocator]
static GLOBAL: PeakMemAlloc<Jemalloc> = PeakMemAlloc::new(Jemalloc);
lib.rs
:
An instrumenting allocator wrapper to compute (scoped) peak memory consumption.
Example
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()
);
}