Por que System.nanoTime () é mais lento (em desempenho) que System.currentTimeMillis ()?
Hoje eu fiz um pouco de Benchmark rápido para testar o desempenho de velocidade deSystem.nanoTime()
eSystem.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));
Estes são os resultados:
System.currentTimeMillis(): average of 12.7836022 / function call
System.nanoTime(): average of 34.6395674 / function call
Por que as diferenças na velocidade de corrida são tão grandes?
Sistema de referência:
Java 1.7.0_25
Windows 8 64-bit
CPU: AMD FX-6100