You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

什么是时间精度降低?用Date.now()测代码时长会额外加时吗?

Date.now() 精度降低对代码执行时长计算的影响

时间精度降低的说明

时间精度降低(Reduced time precision)
为防范计时攻击和指纹识别,Date.now()的精度可能会根据浏览器设置进行舍入。在Firefox中,privacy.reduceTimerPrecision选项默认启用,Firefox 59中默认精度为20微秒,Firefox 60中则为2毫秒。

对执行时长计算的影响

不是“额外增加0到2ms”,而是每次调用Date.now()返回的时间值都会被舍入到最近的2ms倍数。

当你通过「结束时间 - 开始时间」计算代码执行时长时,测量结果与实际时长的误差范围在±2ms以内,但并非固定“额外增加”。举几个场景:

  • 若代码实际执行3ms,开始时间被舍为1000ms,结束时间被舍为1002ms,测量结果为2ms,比实际少1ms;
  • 若实际执行1ms,开始时间舍为1000ms,结束时间舍为1002ms,测量结果为2ms,比实际多1ms;
  • 极端情况误差可达2ms:比如实际执行0.1ms,开始和结束时间被舍入到同一2ms区间,测量结果为0;或是实际执行1.9ms,开始舍为1000ms、结束舍为1002ms,测量结果为2ms。

简言之,Date.now()的精度降低会导致执行时长测量存在±2ms的误差,而非固定额外叠加0-2ms的时长。

内容的提问来源于stack exchange,提问作者1.21 gigawatts

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 20:30:42