問題タブ [eclipse-memory-analyzer]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - Javaのメモリ分析ツールでメモリリークの行を見つける方法
メモリリークのあるコードがあります。Java に最適なツールの 1 つと言われているMemory Analyze Tool (MAT)を見つけました。それは派手に見え、問題の多くの詳細を提供します。それらに関する多くの情報です。しかし、最初に言うべきことを言っていないか、見つけられませんでした。
私のコードが次のようになっているとしましょう:
このようなクラスはあと 30 ~ 40 ありますが、私が書いたものではありません。
問題はMAT
、私が問題を抱えていることを示していますがchar[]
、それについて何も言わline 12434
ないか、見つけることができません。見つける方法、または少なくとも名前を付ける方法はありますthat line
か? 行が1つしかない場合は、その行を検索しますが、漏れはどこにでもあるのでしょうか?class
method
ちなみに、いくつかのチュートリアルを読みましたが、それについて何も見つかりませんでした。前もって感謝します、
java - Java Web アプリケーションでのメモリ リーク
hibernate 3.6.4 と spring 3.2.4 (mvc、tx および security) を使用する Web アプリケーションがあり、Tomcat 7 で実行されています。Tomcat を再起動せずにアプリの新しいバージョンをデプロイするたびに、 tomcat は約 50MB 増加します。
いくつかのヒープ ダンプを作成し、Eclipse メモリ アナライザーで分析しました。アプリを再デプロイするたびに、WebappClassLoader の新しいインスタンスが作成されることがわかりました。しかし、Tomcat マネージャーでアプリケーションを停止した後でも、WebappClassLoader はメモリ内に残り、ガベージ コレクションは行われません。そのため、再デプロイするたびに追加の WebappClassLoader がメモリに残り、約 50MB のメモリを使用します。
WebappClassLoader から GC ルートへの参照パスを見つけるために、Eclipse メモリ アナライザーを使用しました。その結果、WebappClassLoaders がガベージ コレクションされるのを防ぐ可能性のある強力な参照を見つけることができませんでした。
では、何が WebappClassLoaders を存続させているのでしょうか? WebappClassLoader がガベージ コレクションから妨げられている原因を見つけるために、他にどこを調査できますか?
GC がガベージ コレクションを終了できないようにするブロッキング finalize() メソッドがあるのではないかと考えました。しかし、どうすればこれを確認できますか?
java - Eclipse MAT の OQL: 長整数から日付を作成する方法は?
Eclipse MAT を介してコア ダンプを調査しています。収集されていない (そして大量のメモリを保持している) Web クライアント セッションについて必要な情報にかなり近づける OQL があります。
セッション データには、長整数形式の日付があります。
これは小さなことです (またはそうあるべきです) が、その長整数を OQL 内の意味のある日付オブジェクトに変換する方法がわかりませんでしたが、そうすることで、潜在的なリークから無害なライブ セッションをフィルター処理するのに役立ちます。
では、MAT の OQL で long を日付またはタイムスタンプに変換するためのトリックは何ですか?
java - Eclipse Memory Analyzer - 値のエクスポート
現在、Eclipse メモリ アナライザーを使用して hprof ダンプから大量のデータをエクスポートする方法を探しています。
これが存在する理由は、このデータを保持していたデータベースが永久に利用できなくなったため、それを回復する唯一の方法は、ヒープダンプから取り出してプログラムで解析し、データベースに再挿入して再挿入することです。使用する。
現在、配列内には 700 のレコードがあり、配列インデックスと要素内のデータを取得する必要があります。
最もよく説明するために画像を添付しました
プログラムで解釈できるHTMLまたはXMLファイルにすべてをエクスポートできたとしても、残りはかなり簡単に完了すると思いますが、2時間経ってもまだこれを行う方法を見つけていません.
java - Eclipse メモリ アナライザーで HPROF ファイルを読み込めません
MAT で HPROF ファイルを読み込んでいるときに、次のエラーが発生します。
HPROF パーサーは、安全に処理できない HPROF 仕様の違反を検出しました。これは、ファイルの切り捨てまたは JVM のバグが原因である可能性があります。eclipse.org でバグを報告することを検討してください。とにかくダンプの解析を続行するには、-DhprofStrictnessWarning=true を使用するか、[設定] > [HPROF パーサー] > [パーサーの厳密性] で厳密性モードを設定します。詳細については、内部例外を参照してください。HPROF パーサーは、安全に処理できない HPROF 仕様の違反を検出しました。これは、ファイルの切り捨てまたは JVM のバグが原因である可能性があります。eclipse.org でバグを報告することを検討してください。とにかくダンプの解析を続行するには、-DhprofStrictnessWarning=true を使用するか、[設定] > [HPROF パーサー] > [パーサーの厳密性] で厳密性モードを設定します。詳細については、内部例外を参照してください。ヒープダンプレコード 0x20 サイズ 15,93,39, 104 は、サポートされているレコード タイプではありません。ヒープ ダンプ レコード 0x20 サイズ 15,93,39,104 は、サポートされているレコード タイプではありません。
設定を変更した後、以下のエラーがスローされます
「'/home/local/ZOHOCORP/raamesh-1460/Downloads/Rajesh/java_pid2360.hprof' からのヒープ ダンプの解析中」に内部エラーが発生しました。java.lang.NullPointerException
JDK バージョン: 1.6