1000
xの2つの行列を生成しました1000
。
最初のマトリックス:O
と#
。
2番目のマトリックス: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("");
}
このコードを使用すると、2番目のマトリックスが完了するまでに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()
測定に使用しました