Ich habe zwei Matrizen von 1000
x erzeugt 1000
:
Erste Matrix: O
und #
.
Zweite Matrix: O
und B
.
Unter Verwendung des folgenden Codes dauerte die Fertigstellung der ersten Matrix 8,52 Sekunden:
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("");
}
Mit diesem Code dauerte die Fertigstellung der zweiten Matrix 259,152 Sekunden:
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("");
}
Was ist der Grund für die dramatisch unterschiedlichen Laufzeiten?
Wie in den Kommentaren vorgeschlagen, System.out.print("#");
dauert das Drucken nur 7.8871
Sekunden, während es System.out.print("B");
gibt still printing...
.
Als andere, die darauf hinwiesen, dass es für sie normal funktioniert, habe ich zum Beispiel Ideone.com ausprobiert und beide Codeteile werden mit der gleichen Geschwindigkeit ausgeführt.
Test-Bedingungen:
- Ich habe diesen Test von Netbeans 7.2 mit der Ausgabe in der Konsole ausgeführt
- Ich habe
System.nanoTime()
für Messungen verwendet