Eu gerei duas matrizes de 1000
x 1000
:
Primeira matriz: O
e #
.
Segunda matriz: O
e B
.
Usando o código a seguir, a primeira matriz levou 8,52 segundos para ser concluída:
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("");
}
Com esse código, a segunda matriz levou 259.152 segundos para concluir:
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("");
}
Qual é a razão por trás dos tempos de execução dramaticamente diferentes?
Como sugerido nos comentários, a impressão System.out.print("#");
leva apenas 7.8871
alguns segundos, enquanto a System.out.print("B");
doação still printing...
.
Como outros que apontaram que isso funciona normalmente para eles, tentei o Ideone.com por exemplo, e os dois pedaços de código são executados na mesma velocidade.
Condições de teste:
- Fiz esse teste no Netbeans 7.2 , com a saída no console
- Eu usei
System.nanoTime()
para medições