approximate-now
Approximate (fast) current UNIX time.
Motivation
Sometimes you don't care about the exact time the event took place, but rather need to know approximately when. If your use case is performance sensitive, then Date.now()
might not be the best option because it has a measurable impact to the performance. approximate-now
provides an approximate (to the error of 50ms) time without a performance penalty of Date.now()
.
Usage
import {
approximateTime,
} from 'approximate-now';
console.log(approximateTime.now);
Sequence guarantee
It is guaranteed that two consequent attempts to retrieve time within the same 50ms time window will have unique values, i.e.
Assuming that the current time is 0000000000000
, then:
approximateTime.now;
approximateTime.now;
approximateTime.now;
However, if approximateTime.now
is accessed more than 50 times within the same 50ms time window, then the top-most value within that interval is returned repeatedly.
approximateTime.now;
approximateTime.now;
approximateTime.now;
approximateTime.now;
approximateTime.now;
approximateTime.now;
benchmark
Date.now() x 19,900,411 ops/sec ±0.59% (93 runs sampled)
approximateTime.now x 82,420,291 ops/sec ±0.83% (92 runs sampled)
Use cases
Any sort of time-sensitive operations when it is sufficient to retrieve an approximate timestamp, e.g. roarr
logger uses approximate-now
to record the time when a log message was produced.