可能性の重複:
Technique or utility to minimize Java “warm-up” time?スピード違反のJVMウォームアップ時間
私はJVMは、コードのサイズに応じて "ウォームアップ" するためにしばらく時間がかかります知っています。私の質問です:どのように見えるコードの可能な部分を指定することによって "ウォームアップ"プロセスをスピードアップするためにプログラマーが助けることができる方法はありますか?
可能性の重複:
Technique or utility to minimize Java “warm-up” time?スピード違反のJVMウォームアップ時間
私はJVMは、コードのサイズに応じて "ウォームアップ" するためにしばらく時間がかかります知っています。私の質問です:どのように見えるコードの可能な部分を指定することによって "ウォームアップ"プロセスをスピードアップするためにプログラマーが助けることができる方法はありますか?
間接的にコードを多く呼び出すことができます。デフォルトの-xx:CompileThreshold=
は10000です。したがって、重要なコードを何回も呼び出すことができます。 12,000回。
あなたは、コンパイルのしきい値を減らすことができますが、あなたはまだ同じ問題を抱えている、そのループは、コードをウォームアップしたい1000年の代わりに、10000
一つの理由は、それを最適化することであると言うことができるだけでなく、反復回数を減らすと、最適化の一部が実行されず、最適ではない呼び出しが発生する可能性があります(ただし必ずではありません)。
コードをウォームアップすると、準最適な方法で最適化し、JVMは後で最適化を再決定する可能性があります。
先験的なコンパイラを考えてみてください。 gcjを使用すると、アプリケーションをビルドするときに一連のクラスをネイティブコードにコンパイルし、仮想マシンで実行時にロードされるクラスのみを実行できます。コンパイル終了後のパフォーマンスはあまり良くありません(特に、実行時にロードされるコードに多くの時間を費やした場合)が、実行時間が短いプログラムの場合は、オフセット以上のプリコンパイルの利点があります。
developerWorksには、Javaでのマイクロ・パフォーマンス測定について、本当に良いarticleがあります。それはまた、 "ウォームアップ"と他の関連するもののトピックをカバーしています。著者は、Javaのマイクロベンチマークのためのかなり良いフレームワークを実装しています。このフレームワークでは、JVMのウォーミングアップフェーズについても扱い、実際のテストが始まる前にそれをスピードアップして終了させようとしています。フレームワークのソースコードも利用できるので、これがどのように実装されているかを見ることができます。
[同じ質問](http://stackoverflow.com/questions/1481853/technique-or-utility-to-minimize-java-warm-up-time) –
私の提案を確認してくださいhttp://stackoverflow.com/questions/1481853/technique-or-utility-to-minimize-java-warm-up-time/10383192#10383192 - それはあなたのためにも可能です。 –