use std::time::Instant;
fn main() {
// Start timer (nanoseconds)
let start = Instant::now();
// Do some work
for _ in 0..1_000_000 {
// simple loop
}
// Stop timer
let elapsed = start.elapsed();
// Raw ticks (nanoseconds)
let ticks = elapsed.as_nanos();
// Convert to time units
let nanoseconds = ticks as f64;
let microseconds = nanoseconds / 1_000.0;
let milliseconds = nanoseconds / 1_000_000.0;
let seconds = nanoseconds / 1_000_000_000.0;
// Frequency (ticks per second)
let frequency: u64 = 1_000_000_000; // Instant uses nanosecond resolution
// Print results
println!("Elapsed ticks (ns): {}", ticks);
println!("Elapsed ms: {}", milliseconds);
println!("Elapsed us: {}", microseconds);
println!("Elapsed seconds: {}", seconds);
println!("Timer frequency: {} Hz", frequency);
}
/*
run:
Elapsed ticks (ns): 5287680
Elapsed ms: 5.28768
Elapsed us: 5287.68
Elapsed seconds: 0.00528768
Timer frequency: 1000000000 Hz
*/