VisualVMを使用してゲームのヒープダンプをエクスポートし、メモリ問題を報告する
プレイヤー向けメモリ問題報告ガイド:Minecraftプロセスを確認し、VisualVMで.hprofヒープダンプをエクスポート・保存し、再現手順とログを添えて開発者が分析できるようにする。
Available in English
A complete English translation of this article is available.
Machine translation
This page's 日本語 was produced automatically by the translation service and may contain mistakes.
適用シーン
ゲームで下図に示すメモリ警告が発生した場合、またはセーブデータの出入りを繰り返した後にメモリ使用量が上昇し続ける場合は、本記事の手順に従ってヒープダンプをエクスポートできます(.hprof)。開発者が分析するためのものです。ヒープダンプには、エクスポート時の Java ヒープ内のオブジェクトとその参照関係が記録されます。
メモリ使用量が多い、または警告が表示されただけでは、メモリリークが存在することを単独では証明できません。フィードバック時は、問題が発生する前に何をしたかを説明し、可能であれば問題発生後、ゲームがまだ応答しているうちにエクスポートしてください。ゲームを終了すると、その時点のヒープダンプを取得できなくなります。
1. 準備
から VisualVM 公式サイトVisualVM をダウンロードして起動します。
調査対象のMODパックを起動し、問題をできるだけ再現します。たとえば、同じセーブを繰り返し出入りする、またはメモリが増え続ける操作を実行します。
十分なディスク容量を確保してください:ヒープダンプは数 GB に達することがあり、一時ファイルの生成と名前を付けて保存するファイルの両方に容量が必要です。
エクスポート中はゲームが目立って止まることがあります。操作が完了するまでお待ちください。
2. ゲームプロセスを選択
VisualVM の左側にある Applications → Local で実行中の Java プロセスを見つけます。
候補のプロセスをダブルクリックし、 Overview でメインクラス、JVM 引数内のモッドパックインスタンスのパスなどの情報を組み合わせて、それが現在のゲームに属することを確認します;プロセス名はランチャーや起動方法によって変わるため、Prism の文字列が含まれているかどうかだけで判断してはいけません。
実際に Minecraft を実行しているプロセスを選択します。VisualVM、Gradle Daemon、Gradle Wrapper、IntelliJ IDEA を選択しないでください。独立サーバーを調査する場合は、サーバーの Java プロセスを選択する必要があります。
下の図はプロセス一覧の位置を示しているだけで、スクリーンショット時にはゲームを起動しておらず、選択されている Gradle Daemon はゲームのプロセスではありません。
3. ヒープダンプをエクスポートして保存
対象プロセスの Monitor ページでは、ヒープメモリのグラフと、右上の Perform GC および Heap Dump ボタンを確認できます。下図では引き続き Gradle Daemon でボタンの位置を示していますが、実際に操作する際は、現在のタブがゲームプロセスに属していることを確認してください。
ゲーム内で問題を再現した後、VisualVM の Monitor ページに戻り、Heap グラフが更新されていることを確認します。
開発者がガベージコレクション後の状態を確認するよう求めた場合は、まず一度 Perform GC、操作が完了するまで待ち、フィードバックにこの操作を実行したことを明記してください。通常の収集では、そのまま次の手順に進めてよく、繰り返しクリックする必要はありません。
クリック対象: Heap Dump、ヒープダンプが生成されるまで待ちます。その間ゲームが一時停止する場合があり、所要時間はヒープサイズなどに依存します。完了すると、VisualVM にヒープダンプノードが表示され、対応するタブが開きます。
左側の Applications ツリーで新しく生成されたヒープダンプノードを右クリックし、 Save As...、ファイル名を指定して保存します:
.hprofファイル。保存が完了するまで待ち、保存先ディレクトリでファイルが生成されていることを確認してから、ゲームを終了します。
ヒープダンプを生成した後、さらに Save As を実行する必要があります。 VisualVM の公式ドキュメントによると、ヒープダンプは明示的に保存されるまで一時ファイルにすぎません。詳細は ヒープダンプの閲覧。
4. 問題を報告する
公式サイト右上のフィードバック窓口、または公式サイトが提供する GitHub リポジトリの Issues 窓口から問題を報告してください。.hprof ファイルが大きい場合は、先に圧縮して .zip または .gz;フィードバック窓口からアップロードできない場合は、ファイル共有サービスを使用してアップロードし、フィードバックにダウンロード可能なリンクと必要な抽出コードを記載してください。
開発者が問題を再現できるよう、以下の情報も併せて提供してください:
Modpackのバージョン、Javaのバージョン、およびゲームに割り当てられた最大メモリ。
再現手順:どのような操作を行ったか、何回繰り返したか、どのくらい後に警告または明らかなラグが発生したか。
エクスポート時の状態:まだワールド内にいるのか、それともすでにメインメニューに戻っているのか;実行したかどうか Perform GC。
.hprofファイルまたはダウンロードリンク、および今回の実行のlogs/latest.log;クラッシュレポートがある場合は、それも併せて添付してください。
参考資料
Comments
0No comments yet.
Your comment appears under your display name.