Я сгенерировал две матрицы 1000
х 1000
:
Первая матрица: O
а #
.
Вторая матрица: O
а B
.
Используя следующий код, первая матрица заняла 8,52 секунды:
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("");
}
С этим кодом вторая матрица заняла 259,152 секунды для завершения:
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("");
}
В чем причина столь разного времени выполнения?
Как предлагается в комментариях, печать System.out.print("#");
занимает всего 7.8871
несколько секунд, а System.out.print("B");
дает still printing...
.
Как и другие, кто указал, что у них это работает нормально, я, например, попробовал Ideone.com , и оба фрагмента кода выполняются с одинаковой скоростью.
Условия испытаний:
- Я запустил этот тест из Netbeans 7.2 с выводом в консоль
- Я использовал
System.nanoTime()
для измерений