Quindi la mia domanda è più generale. Ho il seguente codice semplice:Perché c'è una grande differenza di tempo tra la prima chiamata nanoTime() e le chiamate successive?
for(int i=0;i<10;i++){
long starttime=System.nanoTime();
System.out.println("test");
long runtime=System.nanoTime()-starttime;
System.out.println(i + ":" +"runtime="+runtime);
}
che ricevo il seguente output:?
test
0:runtime=153956
test
1:runtime=15396
test
2:runtime=22860
test
3:runtime=11197
test
4:runtime=11197
test
5:runtime=12129
test
6:runtime=11663
test
7:runtime=11664
test
8:runtime=53185
test
9:runtime=12130
Qual è la ragione per la differenza tra il primo e il secondo tempo di esecuzione Grazie in anticipo =)
http://stackoverflow.com/questions/860231/first-time-a-java-loop-is-run-slow-why-sun-hotspot-1-5-sparc Fai riferimento a questa domanda, potrebbe essere d'aiuto . – Sneh
ottimizzazione/previsione forse? + Inizializzazione statica "test" per la prima volta – Hacketo
La JVM utilizza un compilatore JIT che compila il codice byte jvm nel codice macchina reale. Il tempo per la compilazione è contenuto nel primo intervallo. –