console.time 和 console.timeEnd 是轻量级同步计时工具,需成对使用相同标签名,区分大小写且严格匹配,支持多计时器并行,适用于快速测量同步代码执行时间。

console.time 和 console.timeEnd 是浏览器和 Node.js 中非常轻量、直接的计时工具,适合快速验证某段同步代码的执行时间。
基本用法:成对使用,传入相同标签名
调用 console.time('label') 开始计时,之后调用 console.timeEnd('label') 结束并自动打印耗时(单位:毫秒)。
示例:
console.time('fetchData');
const data = Array.from({ length: 1000000 }, (_, i) => i * 2);
console.timeEnd('fetchData'); // 输出类似:fetchData: 8.456ms
注意标签名必须完全一致
标签是字符串,区分大小写,且需严格匹配。不匹配会导致 timeEnd 无法找到对应计时器,控制台可能报错或无输出。
-
✅ 正确:
console.time('init');→console.timeEnd('init'); -
❌ 错误:
console.time('init');→console.timeEnd('Init');(大小写不同) -
❌ 错误:
console.time('init');→console.timeEnd('init ')(末尾空格)
支持多个独立计时器同时运行
可以同时开启多个不同标签的计时器,互不影响。
console.time('loop');
console.time('map');
for (let i = 0; i [...Array(1e5)].map(x => x * 2);
console.timeEnd('map');
// 分别输出 loop: xx.xms 和 map: yy.ymm在异步操作中要小心使用
console.time / timeEnd 本身不感知异步,若在异步回调里调用 timeEnd,它只反映“回调执行时刻”的耗时,而非整个异步流程。想测异步耗时,需把 timeEnd 放在回调内部。
-
❌ 不推荐(测不准):
console.time('api');fetch('/api').then(() => console.timeEnd('api'));
(这里 timeEnd 在网络响应后才执行,但 time 的起点是 fetch 调用瞬间 —— 实际测的是「请求发起到响应完成」,逻辑上可行,但要注意 timeStart 不应放在异步链中间) -
✅ 推荐(意图清晰):
console.time('api');fetch('/api').then(res => {
console.timeEnd('api');
return res.json();});











