System.currentTimeMillis()是Java中时间性能的最佳衡量标准吗?

Ben*_*key 17 java performance big-o

System.currentTimeMillis()是Java中时间性能的最佳衡量标准吗?使用它来比较采取行动之前的时间和采取行动之后的时间是否有任何问题?还有更好的选择吗?

Dav*_*one 13

我希望不是 - 这是我不使用时的用法nanoTime().

  • 一个问题(在Windows上,无论如何是Sun JDK6)和`nanoTime`是返回的值取决于执行线程的CPU核心.如果线程开始在一个核心上执行并在另一个核心上完成,那么您的数字将会有所不同.我的代码就像`long start = System.nanoTime(); doIt方法(); long elapsedNanos = System.nanoTime() - start;`并且以`elapsedNanos`为结尾. (10认同)