use std::collections::HashMap;
use std::hint::black_box;
use alloc_tracker::{Allocator, Session};
#[global_allocator]
static ALLOCATOR: Allocator<std::alloc::System> = Allocator::system();
fn main() {
println!("=== Allocation Tracking Example ===");
println!();
let session = Session::new();
println!("✓ Created tracking session");
println!();
{
let string_op = session.operation("string_formatting");
let _span = string_op.measure_process().iterations(3);
for i in 0..3 {
let s = format!("String number {i} with some content");
black_box(s);
}
}
{
let hashmap_op = session.operation("hashmap_creation");
let _span = hashmap_op.measure_process().iterations(3);
for _ in 0..3 {
let mut map = HashMap::new();
map.insert("key1", "value1");
map.insert("key2", "value2");
map.insert("key3", "value3");
black_box(map);
}
}
{
let vector_op = session.operation("vector_allocation");
let _span = vector_op.measure_process().iterations(3);
for i in 0..3 {
let vec = vec![i; 50]; black_box(vec);
}
}
session.print_to_stdout();
println!();
println!("Session automatically cleaned up when dropped.");
}