peakhold/
peakhold.rs

1use std::alloc::System;
2
3use log::*;
4
5// This example illustrates how to use the peakhold feature of the heap monitor.
6
7use heapmon::{util::setup_logger, HeapMon, SummaryOrder};
8
9#[global_allocator]
10pub static HEAPMON: HeapMon<System> = HeapMon::system();
11
12fn fib (n: i64) -> i64 {
13    let strval = format!("blah blah blah blah blah blah");
14    if n <= 1 {
15        n
16    } else {
17        _ = strval;
18        fib(n - 1) + fib(n - 2)
19    }
20}
21
22fn main() {
23    setup_logger().expect("logger setup");
24
25    const N: i64 = 10;
26    HEAPMON.peakhold();
27    info!("fib({}) = {}", N, fib(N));
28    HEAPMON.disable();
29    HEAPMON.dump(SummaryOrder::MemoryUsed, 0, "peakhold");
30}