How to get accurate ticks from a timer (high‑resolution timer) in Rust

1 Answer

0 votes
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

*/

 



answered May 9 by avibootz
...