Ich habe zwei Matrizen von 1000x erzeugt 1000:
Erste Matrix: Ound #.
Zweite Matrix: Ound 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.8871Sekunden, 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
