2

谁能给点建议

JavaScript中计时的准确性和精度?

我需要以计算出的准确度和精确度来计时用户响应。

Date().getTime

是我正在考虑用来进行测量的功能。我想精度接近完美,但我想计算精度。

我想使用 setTimeout() 模拟用户,以便计算 getTime() 的精度。

setTimeOut()

这两个函数使用相同的时钟吗?如果一个变化说+10毫秒,另一个也会有效地使我的计算精度的实验无用吗?

有人已经这样做了:

http://ejohn.org/blog/accuracy-of-javascript-time/

分辨率信息

https://bugzilla.mozilla.org/show_bug.cgi?id=363258

4

1 回答 1

1

你应该阅读这篇文章。它谈论新的高分辨率计时器并将其与当前Date对象进行比较。

Date.now()         //  1337376068250
performance.now()  //  20303.427000007

基本上有两个关键点:

  1. performance.now() 是自该特定页面开始加载以来浮点毫秒的测量值

  2. 也许较少考虑的是,基于系统时间的 Date 也不是真正的用户监控的理想选择。大多数系统运行一个定期同步时间的守护进程。时钟每 15-20 分钟调整几毫秒是很常见的。在那个速率下,测量的 10 秒间隔的大约 1% 是不准确的。

尽管不能保证其Date准确性,但您将获得毫秒级的分辨率。根据高分辨率计时器规格:

对于某些任务,这种时间定义可能不够充分,因为它不允许亚毫秒级的分辨率,并且会受到系统时钟偏差的影响。

我建议您阅读这两篇文章以更清楚地了解这一点。

于 2012-09-19T22:55:45.923 回答