J'ai généré deux matrices de 1000
x 1000
:
Première Matrice : O
et #
.
Deuxième matrice : O
et B
.
En utilisant le code suivant, la première matrice a pris 8,52 secondes :
Random r = new Random();
for (int i = 0; i < 1000; i++) {
for (int j = 0; j < 1000; j++) {
if(r.nextInt(4) == 0) {
System.out.print("O");
} else {
System.out.print("#");
}
}
System.out.println("");
}
Avec ce code, la deuxième matrice a pris 259,152 secondes :
Random r = new Random();
for (int i = 0; i < 1000; i++) {
for (int j = 0; j < 1000; j++) {
if(r.nextInt(4) == 0) {
System.out.print("O");
} else {
System.out.print("B"); //only line changed
}
}
System.out.println("");
}
Quelle est la raison de ces différences spectaculaires de temps d'exécution ?
Comme suggéré dans les commentaires, l'impression seulement System.out.print("#");
prend 7,8871 secondes, alors que System.out.print("B");
donne still printing...
.
Comme d'autres qui ont fait remarquer que cela fonctionne pour eux normalement, j'ai essayé Ideone.com par exemple, et les deux morceaux de code s'exécutent à la même vitesse.
Conditions d'essai :
- J'ai exécuté ce test depuis Netbeans 7.2, avec la sortie dans sa console
- J'ai utilisé
System.nanoTime()
pour les mesures