Tôi đã tạo hai ma trận của 1000
x 1000
:
Ma trận đầu tiên: O
và #
.
Ma trận thứ hai: O
và B
.
Sử dụng mã sau đây, ma trận đầu tiên mất 8,52 giây để hoàn thành:
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("");
}
Với mã này, ma trận thứ hai mất 259.152 giây để hoàn thành:
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("");
}
Lý do đằng sau thời gian chạy khác nhau đáng kể là gì?
Như được đề xuất trong các ý kiến, in chỉ System.out.print("#");
mất 7.8871
vài giây, trong khi System.out.print("B");
cho still printing...
.
Như những người khác chỉ ra rằng nó hoạt động bình thường với họ, tôi đã thử Ideone.com và cả hai đoạn mã đều thực thi ở cùng một tốc độ.
Điều kiện kiểm tra:
- Tôi đã chạy thử nghiệm này từ Netbeans 7.2 , với đầu ra vào bảng điều khiển của nó
- Tôi dùng
System.nanoTime()
để đo