如何测量 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`);
2. 控制台时间
另一个简单的解决方案是使用控制台计时器。`console.time()` 方法会启动一个带有标签的计时器。随后调用带有相同标签的 `console.timeEnd()` 方法,即可输出自该方法启动以来经过的时间。
console.time('Execution Time');
await functionToBeMeasured();
console.timeEnd('Execution Time');
3. 性能计时器
控制台定时器精度不高。如果需要以毫秒为单位的精度,可以使用像 performance.now() 这样的高分辨率定时器。这样做还可以避免一些与系统时钟的同步问题。
const start = performance.now();
await functionToBeMeasured();
const end = performance.now();
console.log(`Execution time: ${end - start} ms`);
注意:如果在 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);
});
原文发表于https://www.wisdomgeek.com,日期为 2021 年 7 月 1 日。
文章来源:https://dev.to/saranshk/how-to-measure-javascript-execution-time-5h2