Boa Tarde Galera,
Estou com uma dúvida relacionada a Loops e Performance. Digamos que eu tenha um Loop e outro Loop dentro, o primeiro possui um valor maior que o do primeiro, digamos :
Loop1 = tamanho 10{
Loop2 = tamanho 5{
}
}
A performance de iteração destes Loops seria maior ou menor que o contrário dos mesmo? Ou seja se for assim:
Loop1 = tamanho 5{
Loop2 = tamanho 10{
}
}
Esta segunda iteração de Loops terá uma performance melhor ou pior?
Eu fiz um teste o seguinte, segue o código:
import java.util.*;
import java.lang.System;
public class Teste{
public static void main(String args[]){
long init;
long end;
long diff;
init = System.nanoTime();
System.out.println("O valor inicial do init : " + init);
for (long i =0; i < 10000000000L; i++){
long valorLoopUm = i;
for (long j =0; j < 5000000000L; j++){
long valorLoopDois = j;
}
}
end = System.nanoTime() ;
System.out.println("O valor inicial do end : " + end);
diff = end - init;
System.out.println("Demorou " + (diff / 1000000.0) + " milisegundos");
//SEPARAÇAO DOS LACOS
init = System.nanoTime();
System.out.println("O valor inicial do init segundo loop : " + init);
for (long i =0; i < 5000000000L; i++){
long valorLoopUm = i;
for (long j =0; j < 10000000000L; j++){
long valorLoopDois = j;
}
}
end = System.nanoTime();
System.out.println("O valor inicial do end segundo loop: " + end);
diff = end - init;
System.out.println("Demorou " + (diff / 1000000.0) + " milisegundos");
}
}
Os valores que eu peguei com esse teste foram:
O valor inicial do init : 29587814879759
O valor inicial do end : 29642180555702
Demorou 54365.675943 milisegundos
O valor inicial do init segundo loop : 29642202512106
O valor inicial do end segundo loop: 29673149140924
Demorou 30946.628818 milisegundos
Não sei se o meu código ficou bom o suficiente para entender e tals e nem sei se a minha explicação também, mas e ai galera, o que vocês acham?
Abss,
Zabimaru