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

1 Answer

0 votes
// Start timer (nanoseconds)
const start = process.hrtime.bigint();

// Do some work
for (let i = 0; i < 1_000_000; i++) {
    // simple loop
}

// Stop timer
const end = process.hrtime.bigint();

// Raw ticks (nanoseconds)
const ticks = end - start;

// Convert to time units
const nanoseconds  = Number(ticks);
const microseconds = nanoseconds / 1_000;
const milliseconds = nanoseconds / 1_000_000;
const seconds      = nanoseconds / 1_000_000_000;

// Frequency (ticks per second)
const frequency = 1_000_000_000; // hrtime = 1 GHz resolution

// Print results
console.log("Elapsed ticks (ns):", ticks.toString());
console.log("Elapsed ms:", milliseconds);
console.log("Elapsed us:", microseconds);
console.log("Elapsed seconds:", seconds);
console.log("Timer frequency:", frequency, "Hz");



/*
run:

Elapsed ticks (ns): 2219579
Elapsed ms: 2.219579
Elapsed us: 2219.579
Elapsed seconds: 0.002219579
Timer frequency: 1000000000 Hz

*/

 



answered 3 days ago by avibootz
...