重複の可能性:
Java: 空のループの使用時間は?
以下を見てください。
for (int j = 0 ; j < 5 ; j++) {
long t1 = System.currentTimeMillis();
for (int i = 0 ; i < 10000000 ; i++)
; // intentionally empty
long t2 = System.currentTimeMillis();
System.out.println (t2 - t1);
}
出力 (可能な多くの 1 つ):
2
11
0
0
0
このプログラムを複数回実行すると、出力の最初の 2 つの数値は常にゼロではなく、他のすべての数値は実際に 0 であることがわかります。さらに、通常、2 番目の数値は最初の数値よりも大きいように見えます。これは、より高くループしても保持されるように見えますj < 100
。これには具体的な理由はありますか?もちろん、ミリ秒はおそらく一般的に大きな違いはありませんが、私はただ興味があります.