Ho un semplice sotto programma che scorre attraverso una matriceTempo totale richiesto da un ciclo per completare sempre diverso per ogni esecuzione
Integer [] intArray = new Integer[20000];
int index=0;
for(int i=10000; i>=0; i--){
intArray[index]=i;
index++;
}
long startTime = System.currentTimeMillis();
for(Integer t : intArray){
System.out.println(t);
}
long endTime = System.currentTimeMillis();
long consumedTime = endTime-startTime;
System.out.println("Consumed time "+ consumedTime);
ottengo sempre diversi valori di tempo consumato come 743, 790, 738, 825 , 678.
Perché il tempo impiegato da ciclo for è sempre diverso per ogni esecuzione.
Nota Sto eseguendo questo codice all'interno di un metodo principale. Il mio sistema operativo è Ubuntu e il processore è a 32 bit.
Esempio di cose che possono andare storte quando si misura il tempo impiegato da un pezzo di codice Java: http://stackoverflow.com/questions/504103/how-do-i-write-a-correct-micro-benchmark- in-java – assylias