process.hrtime([time])
time
<integer[]> 先前调用process.hrtime()
的结果- 返回: <integer[]>
这是 process.hrtime.bigint()
在 JavaScript 中引入 bigint
之前的旧版本。
process.hrtime()
方法在 [seconds, nanoseconds]
元组 Array
中返回当前高解析度实时,其中 nanoseconds
是无法以秒精度表示的实时剩余部分。
time
是可选参数,它必须是先前 process.hrtime()
调用 diff 与当前时间的结果。
如果传入的参数不是元组 Array
,则会抛出 TypeError
。
传入用户定义的数组而不是先前调用 process.hrtime()
的结果将导致未定义的行为。
这些时间相对于过去的任意时间,与一天中的时间无关,因此不受时钟漂移的影响。 主要用途是测量间隔之间的性能:
const NS_PER_SEC = 1e9;
const time = process.hrtime();
// [ 1800216, 25 ]
setTimeout(() => {
const diff = process.hrtime(time);
// [ 1, 552 ]
console.log(`Benchmark took ${diff[0] * NS_PER_SEC + diff[1]} nanoseconds`);
// 基准测试耗时 1000000552 纳秒
}, 1000);
time
<integer[]> The result of a previous call toprocess.hrtime()
- Returns: <integer[]>
This is the legacy version of process.hrtime.bigint()
before bigint
was introduced in JavaScript.
The process.hrtime()
method returns the current high-resolution real time
in a [seconds, nanoseconds]
tuple Array
, where nanoseconds
is the
remaining part of the real time that can't be represented in second precision.
time
is an optional parameter that must be the result of a previous
process.hrtime()
call to diff with the current time. If the parameter
passed in is not a tuple Array
, a TypeError
will be thrown. Passing in a
user-defined array instead of the result of a previous call to
process.hrtime()
will lead to undefined behavior.
These times are relative to an arbitrary time in the past, and not related to the time of day and therefore not subject to clock drift. The primary use is for measuring performance between intervals:
const NS_PER_SEC = 1e9;
const time = process.hrtime();
// [ 1800216, 25 ]
setTimeout(() => {
const diff = process.hrtime(time);
// [ 1, 552 ]
console.log(`Benchmark took ${diff[0] * NS_PER_SEC + diff[1]} nanoseconds`);
// Benchmark took 1000000552 nanoseconds
}, 1000);