package main
import (
"fmt"
"time"
)
func main() {
// Start timer (nanoseconds)
start := time.Now()
// Do some work
for i := 0; i < 1_000_000; i++ {
// simple loop
}
// Stop timer
elapsed := time.Since(start)
// Raw ticks (nanoseconds)
ticks := elapsed.Nanoseconds()
// Convert to time units
nanoseconds := float64(ticks)
microseconds := nanoseconds / 1_000
milliseconds := nanoseconds / 1_000_000
seconds := nanoseconds / 1_000_000_000
// Frequency (ticks per second)
frequency := 1_000_000_000 // Go uses nanosecond resolution
// Print results
fmt.Println("Elapsed ticks (ns):", ticks)
fmt.Println("Elapsed ms:", milliseconds)
fmt.Println("Elapsed us:", microseconds)
fmt.Println("Elapsed seconds:", seconds)
fmt.Println("Timer frequency:", frequency, "Hz")
}
/*
run:
Elapsed ticks (ns): 319220
Elapsed ms: 0.31922
Elapsed us: 319.22
Elapsed seconds: 0.00031922
Timer frequency: 1000000000 Hz
*/