3005.77.0 • Published 3 years ago

@springworks/high-resolution-millisecond-timer v3005.77.0

Weekly downloads
24
License
-
Repository
github
Last release
3 years ago

@springworks/high-resolution-millisecond-timer

A small util to create timers that can measure sub-millisecond time in a consistently accurate way.

yarn add @springworks/high-resolution-millisecond-timer

Usage

import { createHighResolutionMillisecondTimer } from '@springworks/high-resolution-millisecond-timer';

// Create a timer
const timer = createHighResolutionMillisecondTimer();

// Run the code that you want to measure.
someFunction();

// Save the elapsed time in a variable.
// This is the number of milliseconds that `someFunction` took to run but in nanosecond resolution.
const elapsed_time = timer();

console.log(`someFunction took ${elapsed_time} ms to run.`);
// This will log something like "someFunction took 3.214684 ms to run."

// Even invoking the function immediately will result in a tangible measurement.
createHighResolutionMillisecondTimer()(); // <- note the extra invocation.
// this will return something like 0.001802

Why use this instead of new Date() or Date.now()?

The Date API gets it's current time from the operating system and as such is subject to clock drift. This means that the OS can decide to change what time it is between your measurements. You can even end up going back in time...

This function uses the HR Timer API and does not depend on what the OS think the clock is right now.

3005.77.0

3 years ago

3005.76.0

3 years ago

3005.0.0

4 years ago

3004.0.0

4 years ago

3003.0.0

4 years ago

3002.20.1

4 years ago

3002.20.2

4 years ago

3002.20.0

4 years ago

3002.19.120

4 years ago

3002.19.119

4 years ago

3002.19.118

4 years ago

3002.19.117

4 years ago

3002.19.116

4 years ago

3002.19.115

4 years ago

3002.19.114

4 years ago

3002.19.113

4 years ago

3002.19.112

4 years ago

3002.19.111

4 years ago

3002.19.110

4 years ago

3002.19.109

4 years ago

3002.19.108

4 years ago

3002.19.106

4 years ago

3002.19.107

4 years ago

3002.19.104

4 years ago

3002.19.105

4 years ago

3002.19.103

4 years ago

3002.19.102

4 years ago

3002.19.101

4 years ago

3002.19.99

4 years ago

3002.19.100

4 years ago

3002.19.97

4 years ago

3002.19.96

4 years ago

3002.19.98

4 years ago

3002.19.95

4 years ago

3002.19.93

4 years ago

3002.19.94

4 years ago

3002.19.91

4 years ago

3002.19.90

4 years ago

3002.19.89

4 years ago

3002.19.88

4 years ago

3002.19.87

4 years ago

3002.19.86

4 years ago