相关疑难解决方法(0)

为什么System.nanoTime()比System.currentTimeMillis()更慢(在性能上)?

今天我做了一个快速的Benchmark来测试速度性能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));
Run Code Online (Sandbox Code Playgroud)

这是结果:

System.currentTimeMillis(): average of 12.7836022 / function call
System.nanoTime():          average of 34.6395674 / function call
Run Code Online (Sandbox Code Playgroud)

为什么跑步速度的差异如此之大?

基准系统:

Java 1.7.0_25
Windows 8 64-bit
CPU: AMD FX-6100
Run Code Online (Sandbox Code Playgroud)

java performance time

62
推荐指数
3
解决办法
2万
查看次数

标签 统计

java ×1

performance ×1

time ×1