Saya menghasilkan dua matriks 1000
x 1000
:
Matriks Pertama: O
dan #
.
Matriks Kedua: O
dan B
.
Menggunakan kode berikut, matriks pertama membutuhkan 8,52 detik untuk selesai:
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("");
}
Dengan kode ini, matriks kedua membutuhkan 259,152 detik untuk menyelesaikan:
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("");
}
Apa alasan di balik run time yang sangat berbeda?
Seperti yang disarankan dalam komentar, pencetakan hanya System.out.print("#");
membutuhkan beberapa 7.8871
detik, sedangkan System.out.print("B");
memberi still printing...
.
Seperti orang lain yang menunjukkan bahwa itu bekerja untuk mereka secara normal, saya mencoba Ideone.com misalnya, dan kedua potongan kode dieksekusi pada kecepatan yang sama.
Kondisi pengujian:
- Saya menjalankan tes ini dari Netbeans 7.2 , dengan output ke konsolnya
- Saya digunakan
System.nanoTime()
untuk pengukuran