fun main() {
// Start timer (nanoseconds)
val start = System.nanoTime()
// Do some work
for (i in 0 until 1_000_000) {
// simple loop
}
// Stop timer
val end = System.nanoTime()
// Raw ticks (nanoseconds)
val ticks = end - start
// Convert to time units
val nanoseconds = ticks.toDouble()
val microseconds = nanoseconds / 1_000.0
val milliseconds = nanoseconds / 1_000_000.0
val seconds = nanoseconds / 1_000_000_000.0
// Frequency (ticks per second)
val frequency = 1_000_000_000L // nanoTime = 1 tick per nanosecond
// Print results
println("Elapsed ticks (ns): $ticks")
println("Elapsed ms: $milliseconds")
println("Elapsed us: $microseconds")
println("Elapsed seconds: $seconds")
println("Timer frequency: $frequency Hz")
}
/*
run:
Elapsed ticks (ns): 4051519
Elapsed ms: 4.051519
Elapsed us: 4051.519
Elapsed seconds: 0.004051519
Timer frequency: 1000000000 Hz
*/