Saya menghasilkan dua matriks 1000x 1000:
Matriks Pertama: Odan #.
Matriks Kedua: Odan 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.8871detik, 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
