1、私はJIT中にホットスポットでクラスやメソッドをコンパイルするのにどれくらいの時間を費やしたのかを知りたい(タイムアウトの問題があり、コンパイル時間が長いと思われる)この時間をトレースするためのトレースフラグや他の方法はありますか?ホットスポットのクラスやメソッドをコンパイルするのにどれだけの時間を費やすのか?
2、メソッドが初めて実行された場合、コンパイルプロセスが全くないため、コンパイル時間は0になります。
1、私はJIT中にホットスポットでクラスやメソッドをコンパイルするのにどれくらいの時間を費やしたのかを知りたい(タイムアウトの問題があり、コンパイル時間が長いと思われる)この時間をトレースするためのトレースフラグや他の方法はありますか?ホットスポットのクラスやメソッドをコンパイルするのにどれだけの時間を費やすのか?
2、メソッドが初めて実行された場合、コンパイルプロセスが全くないため、コンパイル時間は0になります。
JVMフラグ:アプリケーションの実行中に
-XX:+PrintCompilation -XX:+UnlockDiagnosticVMOptions -XX:+PrintCompilation2
289 425 4 java.time.LocalDate::until (116 bytes)
292 360 3 java.time.ZoneId::of (85 bytes) made not entrant
293 426 4 java.time.LocalDate::from (68 bytes)
293 386 3 java.time.LocalDate::from (68 bytes) made not entrant
293 426 size: 248(96) time: 0 inlined: 54 bytes
297 425 size: 3688(2272) time: 8 inlined: 1092 bytes
^^ ^ ^ ^
| | | | |
| | compiled bytes | bytecodes inlined
| compilation ID method compilation time (ms)
timestamp (ms from JVM start)
は注意。遅延やタイムアウトが発生する可能性は低いです。
PrintCompilation
出力がインターリーブされたように見えることがあります。jitwatchは、jitコンパイルログを記録して表示できます。
情報を提供していただきありがとうございます。しかし、Prod環境でトラブルシューティングを行う必要がありますが、jitwatchが大きなパフォーマンスに影響するかどうかはわかりません。 –
我々だけでアプリケーションを起動\展開した後、我々は大規模なクライアントの要求が同時に存在する場合に、クライアントに多くのタイムアウトエラーを得た問題を得たので、私たちはその問題は多分長い時間クラスのロードや方法によって引き起こされると仮定コンパイル、私はこのトラブルシューティングの方向が正しいかどうか分かりません、あなたは親切にいくつかの提案をすることはできますか? –
ところで、コンパイル中のメソッドは、そのメソッドへの要求がブロックされる場合は?コンパイルが完了したらコンパイルされたバージョンに切り替えますか? –
@Jasonコンパイルはメソッドの実行をブロックしません。メソッドが解釈されている間、バックグラウンドで実行されます。 – apangin