任何人都可以就
提出建议 JavaScript中的时间我需要以计算的准确度和精确度计算用户响应时间。
Date().getTime
是我正在考虑用于进行测量的功能。我认为准确度接近完美,但我想计算精度。
我想使用setTimeout()模拟用户,这样我就可以计算getTime()的精度。
setTimeOut()
这两个功能是否使用相同的时钟?如果一个变化说+ 10毫秒另一个也有效地使我的实验计算精度无用?
有人已经这样做了:
http://ejohn.org/blog/accuracy-of-javascript-time/
决议信息
答案 0 :(得分:1)
您应该阅读此article。它讨论了新的High resolution Timer并将其与当前的Date
对象进行了比较。
Date.now() // 1337376068250 performance.now() // 20303.427000007
基本上有两个关键点:
performance.now()是自特定页面开始加载以来的浮点毫秒的度量
可能不太经常考虑的是,基于系统时间的Date对于真实用户监控也不是理想的。大多数系统运行守护进程,定期同步时间。时钟通常每15-20分钟调整几毫秒。按照这个速度,测量的10秒间隔的大约1%将是不准确的。
使用Date
,您将获得毫秒分辨率,但无法保证其准确性。根据{{3}}规范:
对于某些任务,此时间定义可能不够,因为它不允许亚毫秒级分辨率并且受制于系统时钟偏差。
我建议你阅读这两篇文章,以便更清楚地了解这一点。