System.currentTimeMillis()
(あるいはSystem.nanoTime()
)を使用してプログラムのパフォーマンスを時間切れにしようとしていて、実行するたびに別の結果が得られますタスクを完了します。プロセスのタイミングを合わせるときに結果が一致しない
でも簡単なテスト:
long totalTime;
long startTime;
long endTime;
startTime = System.currentTimeMillis();
for (int i = 0; i < 1000000000; i++)
{
for (int j = 0; j < 1000000000; j++)
{
}
}
endTime = System.currentTimeMillis();
totalTime = endTime-startTime;
System.out.println("Time: " + totalTime);
は0から200に、異なる出力のすべての種類を生産する誰もが私が間違っているのか、別の解決策を提案しています何を言うことはできますか?
+1計算には、10年の近似値がそれほど悪くはありません。私は、シングルスレッドの2.4GHz CPUの場合、13年間で計算しました。 –
+1私はピーターが物事を劇的に控えめにしていると思う。私は最近ベンチマークを少ししましたが、JVMにはジャストインタイムオプティマイザが追加されました。このオプティマイザは、配列のどの要素を確認し、__only__の要素を調べるかを素早く見つけ出します。私はあなたが試して使うかもしれない任意の乱数ジェネレーターと一緒にカホットにいると思う。私はまたあなたが画面を見ているかどうかを知っていると思う。いくつかの実際の作業をすることを騙そうとすることを祈ってください。 – RalphChapin
元々、私はものをやっている、私は3つの異なる欲張りアルゴリズム(最初のフィット、次のフィット、最高のフィット)を実装し、そのパフォーマンスをタイミングしています。問題は、他のアルゴリズムに比べて最適なフィットが速くなることがあり、最初の適合がそれを行い、(アルゴリズムのコードが正しいとは思えますが)何も意味がないことがあります。 – comeonism