次のコードでは:
long startingTime = System.nanoTime();
int max = (int) Math.pow(2, 19);
for(int i = 0; i < max; ){
i++;
}
long timePass = System.nanoTime() - startingTime;
System.out.println("Time pass " + timePass / 1000000F);
自分のマシンで簡単なアクションを実行するのにかかる時間を計算しようとしています。
19の累乗までのすべての計算により、このコードの実行にかかる時間が長くなりますが、19を超えると(最大int値31まで)、所要時間に影響がないことに驚きました。私のマシンでは常に5ミリ秒と表示されます!!!
どうすればいいの?