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

1 Answer

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

*/

 



answered May 9 by avibootz
...