发布于 2026-01-06 0 阅读
0

如何测量 JavaScript 执行时间

如何测量 JavaScript 执行时间

对于应用程序性能而言,性能测量至关重要。任何优化都需要先进行测量,然后进行优化,最后再次测量以评估优化效果。因此,测量 JavaScript 执行时间便是这些步骤之一。

现代浏览器和Node.js平台提供了各种API来测量代码执行时间。

本文将讨论几种测量 JavaScript 执行时间的方法。

1. 日期对象

跟踪执行时间最简单的方法是使用日期对象。使用 `Date.now()`,它会返回自 Unix 纪元以来经过的总毫秒数,我们可以存储待测函数执行前后的值,然后计算两者的差值。

const start = Date.now();

await functionToBeMeasured();

const end = Date.now();
console.log(`Execution time: ${end - start} ms`);
Enter fullscreen mode Exit fullscreen mode

2. 控制台时间

另一个简单的解决方案是使用控制台计时器。`console.time()` 方法会启动一个带有标签的计时器。随后调用带有相同标签的 `console.timeEnd()` 方法,即可输出自该方法启动以来经过的时间。

console.time('Execution Time');

await functionToBeMeasured();

console.timeEnd('Execution Time');
Enter fullscreen mode Exit fullscreen mode

3. 性能计时器

控制台定时器精度不高。如果需要以毫秒为单位的精度,可以使用像 performance.now() 这样的高分辨率定时器。这样做还可以避免一些与系统时钟的同步问题。

const start = performance.now();

await functionToBeMeasured();

const end = performance.now();
console.log(`Execution time: ${end - start} ms`);
Enter fullscreen mode Exit fullscreen mode

注意:如果在 Node 中进行测量,process.hrtime.bigint() 返回的精度以纳秒为单位。

本文介绍了测量 JavaScript 执行时间的方法。如果我们需要测量多个 JavaScript 函数的执行时间,可以使用 Performance API 和Performance Observer。它们提供了标记来跟踪多个条目并独立测量它们。

在单元测试中测量 JavaScript 执行时间

为了确保函数执行速度足够快,可以将其纳入单元测试。许多框架(例如 Jest、Jasmine 等)允许设置测试执行超时时间。如果方法执行时间过长,则可以使用超时机制使测试失败。

与茉莉花一起:

describe('testing time duration', () => {
  it('does not take longer than 5 seconds', async () => {
    await functionToBeMeasured();
  }, 5000);
});
Enter fullscreen mode Exit fullscreen mode

原文发表于https://www.wisdomgeek.com,日期为 2021 年 7 月 1 日。

文章来源:https://dev.to/saranshk/how-to-measure-javascript-execution-time-5h2