Genere dos matrices de 1000
x 1000
:
Primera matriz: O
y #
.
Segunda matriz: O
y B
.
Usando el siguiente código, la primera matriz tardó 8,52 segundos en completarse:
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("");
}
Con este código, la segunda matriz tardó 259.152 segundos en completarse:
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("");
}
¿Cuál es la razón detrás de los tiempos de ejecución dramáticamente diferentes?
Como se sugiere en los comentarios, la impresión solo System.out.print("#");
toma 7.8871
segundos, mientras que System.out.print("B");
da still printing...
.
Como otros que señalaron que funciona para ellos normalmente, probé Ideone.com por ejemplo, y ambas piezas de código se ejecutan a la misma velocidad.
Condiciónes de la prueba:
- Ejecuté esta prueba desde Netbeans 7.2 , con el resultado en su consola
- Solía
System.nanoTime()
para mediciones