3

我正在尝试制作一个非常简单的反应时间测试程序。它由“开始测试”按钮和“单击我”按钮组成。按下第一个按钮后,第二个按钮会在随机几秒钟后闪烁红色。时间是根据它变成红色并被用户按下的时间来计算的。

据我搜索,有 3 种方法可以计算程序经过/执行时间(以毫秒为单位):

  • 日期().getTime()
  • System.currentTimeMillis()
  • System.nanoTime()

哪一个更适合我?事实是,我的时间安排需要明确的精确度。

非常感谢 :)

4

3 回答 3

4

System.nanoTime()是获得确定精度的最佳方法。

请参阅:System.nanoTime()

Returns the current value of the most precise available system timer, in nanoseconds.

于 2013-08-13T16:18:14.990 回答
4

你正在计时人类的反应,所以System.nanoTime()是矫枉过正。

其余两个中侵入性最小的是,System.currentTimeMillis()但请记住,它在系统之间具有粒度。

于 2013-08-13T16:19:29.200 回答
1

如果您可以使用库,那么您可能会对 Guava 的StopWatch类感兴趣。

于 2013-08-13T16:22:24.117 回答