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 pour terminer:
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 mis 259,152 secondes pour terminer:
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 derrière les temps d'exécution radicalement différents?
Comme suggéré dans les commentaires, l'impression ne System.out.print("#");
prend que 7.8871
quelques secondes, tandis que System.out.print("B");
donne still printing...
.
Comme d'autres qui ont souligné que cela fonctionne normalement pour eux, j'ai essayé Ideone.com par exemple, et les deux morceaux de code s'exécutent à la même vitesse.
Conditions de test:
- J'ai exécuté ce test à partir de Netbeans 7.2 , avec la sortie dans sa console
- J'ai utilisé
System.nanoTime()
pour les mesures