2

私は Java プロセスを持っていて、それを開始します (ここで提案されているように: FR のパラメータ)。

-XX:+UnlockCommercialFeatures -XX:+FlightRecorder -XX:StartFlightRecording=duration=2m,filename=myflightrecord.jfr -XX:FlightRecorderOptions=maxsize=100k,maxage=1m

Flight Recorder 情報を取得するため。

maxage=1mでは 1 分間の記録しか得られず、maxsize=100kではファイル サイズが 100Kb を超えないと予想されますが、どれも期待どおりに機能しません。

私が遭遇するもう 1 つの問題は、1 分ごとにファイルを保存したいということです。ただし、ファイル「myflightrecord.jfr」は、期間に達するまで空です (例では 2 分)。

期間が終了する前にフライトレコーダーをフラッシュさせる方法はありますか?

ps: 私が使用している Java のバージョンは JDK1.8.0_45 です

4

2 に答える 2

2

maxage および maxsize オプションは、連続録画 (= 期間を設定していない) の場合にのみ適用されます。また、これらは単なるガイドラインであり、正確な制限ではないと思います.

継続的な記録のためにデータをディスクにフラッシュしたい場合は、disk=true を設定できます。データの最終的な場所を指定したい場合は、repository=path を設定できます (データはフラッシュされるだけだと思います)。メモリ内バッファがいっぱいになったときにディスクに書き込みます。それがスレッド ローカル バッファがいっぱいになったときなのか、それともグローバル バッファがいっぱいになったときなのかわかりません。これを説明する図については、このスライドのスライド 13 を参照してください: http:// www.slideshare.net/marcushirt/java-mission-control-java-flight-recorder-deep-dive )

詳細については、 https ://docs.oracle.com/javase/8/docs/technotes/tools/windows/java.html XX:FlightRecorderOptions を参照してください。threadbuffersize と globalbuffersize も確認できます。

フラグの有効な組み合わせが少し異なることはわかっているため、ドキュメントが完全に最新ではない可能性があります。

Kire Haglinは、私が誤解していたところを訂正してくれます。

于 2015-09-16T09:55:49.173 に答える