【发布时间】:2013-10-03 20:13:39
【问题描述】:
今天我做了一点快速的基准测试来测试System.nanoTime()和System.currentTimeMillis()的速度性能:
long startTime = System.nanoTime();
for(int i = 0; i < 1000000; i++) {
long test = System.nanoTime();
}
long endTime = System.nanoTime();
System.out.println("Total time: "+(endTime-startTime));
这是结果:
System.currentTimeMillis(): average of 12.7836022 / function call
System.nanoTime(): average of 34.6395674 / function call
为什么跑步速度差异这么大?
基准系统:
Java 1.7.0_25
Windows 8 64-bit
CPU: AMD FX-6100
【问题讨论】:
-
这篇文章可能会回答你的问题:stackoverflow.com/a/5839267/658907
-
nanoTime比currentTimeMillis更精确,这可能是原因。 -
不同意这是一个重复的问题。这是询问执行速度。另一个问题是关于漂移的问题。也许答案是相似的,但问题不是。
-
不回答你的问题,但即使是“慢”
nanoTime也只需要 34 纳秒 来执行。我没有看到很多用例如此缓慢以至于成为问题。
标签: java performance time