📜  Node.js process.hrtime() 方法(1)

📅  最后修改于: 2023-12-03 15:03:13.942000             🧑  作者: Mango

Node.js process.hrtime() 方法

简介

Node.js 中的 process.hrtime() 方法返回当前时间相对于进程开始时间的高精度的时间差。它返回一个包含两个元素的数组,表示以纳秒为单位的时间差。

该方法主要用于测试和性能评估的目的。

语法
const [seconds, nanoseconds] = process.hrtime([time]);

process.hrtime() 接受一个可选的参数 time。当 time 参数存在时,它应该是一个包含两个元素 [seconds, nanoseconds] 的数组,表示起始时间。如果不提供该参数,则假定起始时间是当前进程启动的时间。

返回值是一个包含两个元素的数组 [seconds, nanoseconds],表示当前时间相对于起始时间的时间差。

示例
const NS_PER_SEC = 1e9;

const time1 = process.hrtime();
// 执行一些任务
const time2 = process.hrtime(time1);

console.log(`耗时: ${time2[0]}s ${time2[1]}ns`);
console.log(`耗时: ${(time2[0] * NS_PER_SEC + time2[1]) / NS_PER_SEC}s`);

输出:

耗时: 0s 232163ns
耗时: 0.000232163s

在上面的例子中,我们在 process.hrtime() 中传入了一个起始时间参数 time1,并执行了一些任务。然后我们计算了执行任务的时间差 time2,并将其以秒和纳秒的形式输出。

注意事项
  • process.hrtime() 的精度是纳秒级别的。
  • 返回的时间差是相对于进程启动时间的,而不是当前时间。
  • 为了避免出现时间戳溢出的情况,在比较两个时间戳时应该使用足够大的数据类型,例如 BigInt。
  • 由于 Node.js 中的时间戳使用 POSIX 时间,因此在运行 Node.js 的系统上改变系统时间会影响到 process.hrtime() 的返回值。