今天我进行了一个小小的基准测试,以测试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
nanoTime
比currentTimeMillis
更精确,这可能是原因。 - ThomasnanoTime
也只需要34 纳秒来执行。我看不出有很多使用情况会变得如此缓慢以至于成为一个问题。 - yannick1976