質問

ではも使用Eclipseのメモリマネージャーを検出するメモリリークをjavaコード?誰でもお勧めしの良い場所を探しに関する情報をメモリマネージャ?を読み込みまう、というのコミュニケーションを取れまでクラッシュ(メモリ不足エラーが発生する)を生成するクラッシュ報告する。その利用のメモリマネージャを開き本報告書の検討にメモリリークが発生する場合があります。あかみんなが使用メモリマネージャ?

役に立ちましたか?

解決

-XX:+ HeapDumpOnOutOfMemoryError は便利な場合があります。EclipseMemory Managerを使用するための私の現在のワークフローは次のとおりです。

  1. プログラムを通常どおり実行します
  2. メモリが手に負えなくなるのを待ちます。
  3. jmap を実行: jmap -dump:format = b、file = dump.hprof< PID>
  4. EMMでhprofファイルを開きます。

通常は、ヒストグラムビューとドミネーターツリービューで作業を開始し、何かがおかしいと思われるかどうかを確認し、そこからドリルダウンします。

VisualVMは便利ですが、ヒープダンプを使用する場合、EMMよりも効率が低いようです(EMMは、ヒープダンプのロードに関する多くの情報をキャッシュします)。 Netbeans Profilerは、割り当ての場所を取得し、時間のプロファイリングを行うのに便利です。

他のヒント

おそらく最も簡単なことは、 HProf の下でプログラムを実行することです。 (JVMに標準として付属)しばらくの間、強制的に終了します。 HProfの出力により、すぐにいくつかのポインタが再表示されることが期待されます。メモリリーク。

Eclipseメモリデバッガー(私はあなたが書いたものからしか知識がありません)とは異なり、実行のどの時点からでも統計を収集できます。

ことが考えられるためのコミュニケーションを取れまでクラッシュ(メモリ不足エラーが発生する)を生成するクラッシュ報告する。

と思いつつあ-ん、ダンプファイルの場合 OutOfMemoryError がんベットの著者が混乱でこの問題は何らかのJVMのバグが原因となるコアダンプできます

最良の手続きは、ヒープのダンプを使用 jmap;この出力は、このようになりますの内容をエディタで開き、ヒープバイナリファイル(通常として知られhprofます。このファイルで解析される任意の数の分析装置:

  • jhat 日(日)ツールの分析hprofファイルが起動し、組み込みウェブサーバできますので、ヒープの分析をスのwebブラウザ/ビュー。私はいていることを明らかにしたが 非常に 遅大盛.
  • Doodle さん、デバッグ/トツールとの同梱を推奨します。そうすることもできますを利用してヒープダンプカーの走行の過程で、どのスレッドダンプがその場で発音を確認することができてみようと思って負荷が大hprofファイルのデータものです。
  • Eclipseメモリ装置 -Eclipseプラグインを生成できるhprofファイルです。

Mystic villegeや、レストランのEclipseプラグインとしては非常に負荷の大きな(>500MB以上の空き容量)のヒープの堆積場(下分)、有用な報告書は、クエリ言語の複雑なロジック等

このページでの作業の説明jvmヒープダンプ。 Jhatは、ヒープを操作するグラフィック的な方法ではありませんが、よりシンプルですが、Eclipseメモリマネージャーに同じダンプファイルを読み込むこともできます。 current(1.6)jvmを使用している場合、jvisualvmから情報を取得することもできます。

私は通常、NetBeans Profilerを使用したアプリケーションのプロファイリングを好みます。ほとんどの場合、リークしているオブジェクトとそれらが作成された場所をかなり簡単に確認できます。これを行うツールは他にもいくつかある可能性がありますが、NetBeansプロファイラーはうまく機能し、使いやすいことがわかっています。

Jprobe を使用してみてください。アプリケーションを監視し、作成されたオブジェクトを調べることができます。また、これは、ガベージコレクションを取得できないオブジェクトの分析に役立ち、先へ進むためのポインタになります。

無料ではありませんが、トライアルライセンスが付属していることを覚えているので、確認してください。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top