Я создал две матрицы из 1000
x 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()
для измерений