問題タブ [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 - Eclipse メモリ アナライザーは、ヒープ ダンプ全体 (8GB) のごく一部 (363,2MB) を確認します。
java.lang.OutOfMemoryError: GC limit exceeded
TomcatにデプロイされたWebアプリの高負荷時に何が発生するかを調査しようとしていました. ヒープ サイズは 8 GB に設定されました ( -Xms2048m -Xmx8192m
)
ある時点で、GC アクティビティのオーバーヘッドが原因で、アプリケーションが応答しなくなります。フル GC が連続して複数回発生していることをログで確認できました。そこで、次のコマンドでヒープダンプを取得しました(jmap -F -dump:format=b,file=/root/dump2.hprof 4963
)。ダンプを含むファイルのサイズは 9GB でした。ダンプが取得された後 (アプリは約 45 分間フリーズされました)、OutOfMemoryError
スローされるまで複数のフル GC が発生しました。
GC アクティビティのログ サンプルを次に示します。
ヒープ ダンプを分析するために、Eclipse メモリ アナライザー (MAT) で開きました。残念ながら、MAT はヒープ サイズが 363.2MB (概要タブまたはヒープ ダンプの詳細タブ) であると表示しますが、GC ログによると、ヒープは 6467961K (6.4G) までいっぱいでした。Unreachable Objects Histogram は合計 75 511 736 (75 MB) を示します。ヒストグラム ビューでも、浅いヒープの合計が 380 837 136 であることが確認されました (363.2MB)
私の質問は、GC がメモリを再利用できない場合、MAT がヒープ ダンプからすべてのオブジェクトを表示しないのはなぜですか?
以下は、MAT にインポートされたヒープ ダンプのスクリーンショットです。
eclipse-plugin - Eclipse に MAT をインストールする方法
MAT (メモリ アナライザー ツール) を Eclipse にインストールする方法がわかりません。リークしている Android アプリのヒープを分析するには、このプログラムが必要です。
愚かな感じ、申し訳ありません;-(
正確にはどのような手順ですか?
Eclipseでどうすればいいですか? Android SDK マネージャーを選択するか、ヘルプに移動 => 新しいソフトウェアをインストール => フィールドに URL 文字列を入力します ( http://download.eclipse.org/mat/1.1/update-site/ )?
両方を試しました - 今のところ何も機能していないようです。
説明してくれてありがとう:-)
android - ViewPager のフラグメントが FragmentActivity によって保持される理由
私FragmentActivity
の には、Fragment
(いくつかのフラグメントを作成します。それらを「ItemFrag」と呼びましょう)をViewPager
使用する(HubFragと呼びましょう)があります。FragmentStatePagerAdapter
HubFrag を別の新しいものに置き換えるFragment
と、HubFrag は期待どおりに破棄されますが、ItemFrags オブジェクトの場合はそうではありません。Eclipse マットを使用すると、ItemFrags オブジェクトが私のオブジェクトによって保持されていることがわかりFragmentManagerImpl
ますFragmentActivity
...なぜ????
それらをメモリに残しておきたくない理由を説明します。
各 ItemFrag は画像のダウンロードを開始し、私のダウンローダ ( WeakReference
ItemFragを持っています) は、この弱い参照が nullImageView
の場合 (メモリ使用量を減らすため) を処理したくありません。Bitmap
しかし、弱い参照がnullになることはないため、ダウンローダーは常にデコードしBitmap
ます...ありがとう!
java - JVM ヒープ ダンプ分析は、sun.awt.windows.WToolkit を指していますか?
アプリケーションのメモリ リークを分析しています。Eclipse Memory Analyzerを使用して調査した結果、すべての参照を「保持」するルートは `
sun.awt.windows.WToolkit
そして今、この結果を解釈する方法がわかりません。私は、sun.awt.windows.WToolkit がリークを引き起こすべきではないと考えました。多分誰かがこの結果を解釈する方法を提案していますか?
私たちが確認しようとしている考えの 1 つは、 http: //www.jidesoft.com/ を使用している JIDE ライブラリが原因であるということですが、それと関係があるかどうかはわかりません。
android - Universal Image Loader でのメモリ リークの問題
MATで解析することで
ここにのスクリーンショットがありますdominator_tree
java - java.lang.OutOfMemoryError の根本原因を見つける: Eclipse MAT を使用した Java ヒープ スペース
アプリでどのメソッド/ループがjava.lang.OutOfMemoryError: Java heap spaceを与えたかを調べようとしています。私は、Eclipse Memory Analyzer を使用して Java アプリをプロファイリングすることにかなり慣れていません。
画像では、JNI ローカルの呼び出しが最大保持ヒープを持っていることは明らかですが、アプリには JNI 呼び出しはありません。
メモリ リークの原因がネイティブ コード (JNI ローカル) の呼び出しなのか、文字列の繰り返しなどの使用なのかを確認してください。
参考までに、.hprof ファイルの全体概要とスタックトレースを添付します。
android - LinearLayout & Bitmap でメモリ リークが発生したときに Android アプリでメモリ リークを削除する方法
私は Android アプリを開発しています & 私は Dynamic LinearLayouts を使用しています & 実行時にアクティビティ内でそれらを作成しています. データは動的であるため、動的に作成する必要があります。Heap Dump の分析のために Eclipse で MAT ツールを使用しましたが、LinearLayout と Bitmap がトップ コンシューマーであり、以下のスナップショットに示されているスペースを消費していることがわかりました。2 つのリーク容疑者が表示されています & リーク容疑者は LinearLayout & Bitmap のメモリ割り当てにあります。
アプリケーションは 30 ~ 40MB のヒープ サイズを使用することがあります。
どこかをクリックすると、アプリに赤い暗い境界線が表示されることがあります
すべてのメモリ リークを取り除くために何をすべきか理解できません。私のAndroidアプリでメモリリークを取り除くのを手伝ってくれる人はいますか...
以下のスナップショットは、私の問題をよりよく理解するのに役立ちます..
Primary Leak Suspect (Eclipse の MAT Tools による)
第二の漏えい容疑者
メモリの浪費の可能性を示すシステム ローダー
- アプリ内の上位メモリ消費者
ビットマップを表示するために使用しているコード
前もって感謝します..