#![expect(
clippy::arithmetic_side_effects,
clippy::cast_sign_loss,
clippy::unseparated_literal_suffix,
reason = "this is example code that does not need production-level safety"
)]
use std::collections::HashMap;
use std::fmt::Write;
use std::hint::black_box;
use all_the_time::Session;
fn main() {
println!("=== Processor Time Tracking Example ===");
println!();
let session = Session::new();
println!("✓ Created tracking session");
println!();
{
let string_op = session.operation("string_formatting");
{
let _span = string_op.measure_thread().iterations(10);
for i in 0..10 {
let mut result = String::new();
for j in 0..5000 {
write!(
result,
"String number {i}-{j} with some content that is longer to force more work. "
)
.unwrap();
}
let processed = result.chars().rev().collect::<String>();
black_box(processed);
}
}
}
{
let hashmap_op = session.operation("hashmap_creation");
{
let _span = hashmap_op.measure_thread().iterations(10);
for i in 0..10 {
let mut map = HashMap::new();
for j in 0..1000 {
map.insert(format!("key{i}-{j}"), format!("value{i}-{j}"));
}
for j in 0..1000 {
let key = format!("key{i}-{j}");
black_box(map.get(&key));
}
black_box(map);
}
}
}
{
let computation_op = session.operation("computation");
{
let _span = computation_op.measure_thread().iterations(10);
for i in 0..10 {
let mut sum = 0u64;
for j in 0..50000 {
for k in 0..10 {
sum += (j as u64 * k as u64 * i as u64) % 1000;
sum = sum.wrapping_mul(1103515245).wrapping_add(12345);
}
}
black_box(sum);
}
}
}
session.print_to_stdout();
println!();
println!("Session automatically cleaned up when dropped.");
}