在JavaScript开发中,准确测量函数执行时间是性能优化的基础工作。通过了解不同API的特点,我们可以选择合适的方式统计代码耗时,定位慢逻辑。

使用Date.now测量
最基础的办法是在函数前后用Date.now()获取毫秒时间戳,相减得到耗时。这种方法简单直观,但精度只到毫秒,且如果系统时间被调整会影响结果。
function testDate() {
var start = Date.now();
// 模拟耗时操作
var sum = 0;
for (var i = 0; i < 1000000; i++) {
sum += i;
}
var end = Date.now();
console.log('Date.now耗时: ' + (end - start) + 'ms');
}
testDate();
使用console.time和console.timeEnd
浏览器控制台提供了console.time(label)和console.timeEnd(label),以标签关联计时器,结束时自动打印耗时,适合快速调试。
function testConsole() {
console.time('myFunc');
var arr = [];
for (var i = 0; i < 500000; i++) {
arr.push(i * 2);
}
console.timeEnd('myFunc');
}
testConsole();
使用performance.now获取高精度时间
performance.now()返回从页面加载开始的单调高精度时间,单位为毫秒,小数位可达微秒级,不受系统时钟修改影响,更适合严谨测量。
function testPerformance() {
var t0 = performance.now();
var result = 0;
for (var j = 0; j < 2000000; j++) {
result += Math.sqrt(j);
}
var t1 = performance.now();
console.log('performance.now耗时: ' + (t1 - t0).toFixed(3) + 'ms');
}
testPerformance();
三种方式对比
| 方法 | 精度 | 是否受系统时间影响 | 使用场景 |
|---|---|---|---|
| Date.now | 毫秒 | 是 | 粗略计时 |
| console.time | 毫秒 | 否 | 调试输出 |
| performance.now | 亚毫秒 | 否 | 精确测量 |
封装通用测量函数
我们可以封装一个复用函数,用performance.now统计任意函数的执行时间:
function measure(fn, times) {
times = times || 1;
var start = performance.now();
for (var k = 0; k < times; k++) {
fn();
}
var end = performance.now();
return (end - start) / times;
}
function demo() {
var s = 0;
for (var i = 0; i < 100000; i++) s += i;
}
console.log('平均耗时: ' + measure(demo, 10).toFixed(4) + 'ms');
通过上述方法,开发者能够方便地测量JS函数执行时间,结合多次运行取平均值可以减小误差,更准确地评估代码性能。
JavaScript性能测量console_timeperformance_nowDate_now修改时间:2026-07-25 06:03:18