問題タブ [memoryanalyzer]
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 - J2SE 6.0 を使用して Mac OS で Eclipse MAT を起動すると JVM が終了する
私は最近、非常に便利なEclipse メモリ分析ツールを発見しました。これにより、Java アプリケーションのメモリ リークをすばやく見つけることができます。残念ながら、JDK を 1.6 (Mac OS 10.5 で) に切り替えた後、JVM は起動時にすぐに終了します。表示されるのは、「終了コード = -1」で「JVM が終了しました」というダイアログだけです。
他の誰かがこれに遭遇しますか?おそらく、別のJDKを使用するように構成する方法はありますか? (互換性があることが示された 1.5 など)
windows - Windows 用の優れたオープンソース デバッガーとメモリ アナライザーは何ですか?
Unix の世界では、デバッグにgdbを、メモリ分析にvalgrindを喜んで使用しています。
Windows 用のオープンソース品質の代替品はありますか?
私は、必要なことを実行し、決して邪魔にならない軽量のソフトウェアを探しています (gdb や valgrind のように)。
android - Android ==> メモリ分析 ==> Eclipse メモリ アナライザー?
アプリケーションのメモリ リークをチェックする必要があります。また、アプリケーションのメモリ割り当ても確認する必要があります。Eclipse メモリー・アナライザーをダウンロードしてインストールしましたが、最初のステップはヒープ・ダンプを開くことのようです。しかし、ヒープ ダンプとは何ですか。どうすればヒープ ダンプを作成できますか。そして、このソフトウェアをどのように使用するのでしょうか。グーグルで調べましたが、有用な情報が見つかりませんでした。
android - おそらくActivityGroupを使用する際のAndroidのメモリ使用量の問題
おそらくActivityGroupを使用する際のAndroidのメモリ使用量の問題
これは私がメモリの問題を台無しにしてしまった少し長い話です。非常に多くのアクティビティとフレームワークを使用して、非常に深いAndroidアプリケーションを開発しました。まず、アクティビティを簡単に処理するために、メインカテゴリにActivityGroupsを使用したと言わざるを得ません。そして、私はを介してすべての活動を達成することができますgetLocalActivityManager()
。そして、私はこのエラーメッセージを受け取ります:
次に、私のアプリケーションはさまざまな例外を除いてクラッシュします。
もちろん、 2764800バイトのpng画像はありませんが、デコードされたサイズだと思います。そのため、画像処理に問題があると思い、画像を正しく処理するためにプロジェクトを詳細にチェックして修正しました。android-developers.blogspot.com/2009/01/avoiding-memory-leaks.htmlに記載されているすべてをチェックしました。nullのドローアブルをチェックし、モデルの再利用性の指示に従い、stackoverflow.com / questions / 477572 / android-strange-out-of-memory-issue / 823966#823966で説明されている読み込み方法を変更しました。
また、ディスクからロードするビットマップがほとんどありません。私のすべてのレイアウトは、Androidxmlレイアウトファイルによって作成されました。xmlファイルにもたくさんのビットマップが記述されています。
次に、メモリアナライザを使用したアプリケーションに大きな静的クラスがあることを確認しました。オンデマンドでロードし、使用後に解放することで、静的プロパティを解放しました。だからついに私はMATでこのメモリリークの疑いを持った。
問題の疑い1
「」によってロードされた「java.lang.Class」の3,043インスタンスは、871,304(17.97%)バイトを占有します。
最大のインスタンス:
クラスcom.ibm.icu4jni.util.Resources $ DefaultTimeZones @ 0x4014c3b0-166,768(3.44%)バイト。
クラスandroid.text.Html$HtmlParser @ 0x400fe448-126,592(2.61%)バイト。
クラスcom.google.googlenav.proto.GmmMessageTypes@0x4835d450-56,944(1.17%)バイト。
クラスorg.apache.harmony.luni.internal.net.www.protocol.http.HttpConnectionPool@0x47caea20-51,872(1.07%)バイト。
クラスorg.apache.harmony.security.fortress.Services@0x4008c4d0-51,456(1.06%)バイト。
問題の疑い2
「システムクラスローダー」によってロードされた「java.lang.String」の8,721インスタンスは、549,624(11.33%)バイトを占有します。キーワードjava.lang.String
問題の疑い3
「システムクラスローダー」によってロードされた「org.bouncycastle.jce.provider.X509CertificateObject」の60インスタンスは、300,024(10.76%)バイトを占有します。これらのインスタンスは、「システムクラスローダー」キーワードorg.bouncycastle.jce.provider.X509CertificateObject java.util.Hashtable $HashtableEntry[]によってロードされる「java.util.Hashtable$HashtableEntry[]」の1つのインスタンスから参照されます。
この3つ目は、毎回発生するわけではありません。一般的に、GalaxyTabでメモリマネージャーを使用する場合。
私の最大のトップレベルのドミネータークラスはこれらです。http://www.matriks.mobi/arge/android/Screen%20shot%202011-02-25%20at%2012.19.08%20PM.png
ライブのアクティビティは2つか3つだけで、残りは中断されています。このメッセージはコンポーネントレポートに表示されます。もちろん、これは私が1.5 MBのRAMを使用しているという説明ではありません。メモリマネージャによると、私のアプリケーションは約20MBから48MBのRAMを使用しているからです。
メモリの浪費の可能性 * 文字列の重複*同一のコンテンツを持つ少なくとも10個のインスタンスでchar[]が0回検出されました。合計サイズは0バイトです。
私はそれが私が望むものではないと思います:) http://www.matriks.mobi/arge/android/android5706014442078310727.hprof.zipにあるhprofファイル
ActivityGroupクラスに問題があると思います。少なくとも、LocalActivityManagerのアクティビティとアクティビティIDをスタックに保持しています。しかし、新しいアクティビティを作成せず、ロードされたアクティビティ間を通過しても、メモリは増加します。
私はこれがリークを検索する方法ではないことを知っています、そしておそらく私はこのメモリリークを引き起こすコードベースの問題を抱えています。しかし、私がここで立ち往生しているので、私がチェックすべき単一のアイデアはここで非常に歓迎されます。
java - 巨大なヒープダンプ(11GB)-Jhatが失敗し、EclipseMATが助けを必要としていた
EAでメモリエラーが発生し、-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/path/to/some/dir
OOM時にヒープをダンプしていました。
12GBのヒープメモリと256MBのpermgenがありました。
ヒープダンプは、アプリケーションを実行しているLinuxボックスで生成され、そのサイズは11.5GBです。ローカルにダウンロードする権限がありません。
JHATを使用してその11GBヒープダンプを分析しようとすると、OOMがスローされました。
LinuxCLIから次のコマンドを試しました。
すべてのオプションで、ダンプを数分間(> 30分)読み取った後にOOM例外がスローされます。
私たちはそれをグーグルで検索し、 MATを強力なヒープダンプアナライザーとして見つけましたが、LINUXでそれを使用する方法ではありませんでした。
どんな提案ももっと助けになるでしょう。ありがとう。
変更:
Linux x86_64マシンにMATをインストールしましたが、実行時に次のエラーが発生しました./MemoryAnalyzer
これを試してみ./ParseHeapDump.sh ../java_pid1491.hprof
たところ、次のエラーが発生しました。
android - hprof-conv.exe 実行時のエラー
ERROR: read 46402 of 4259932 bytes
実行時にエラーが発生しhprof-conv.exe
、作成したファイルを MemoryAnalyzer.exe で開くことができませんでしたIllegal record length 0 at byte 5,408,931 for record type 1
。
以前android.os.Debug.dumpHprofData("/data/misc/dump.hprof");
はダンプ ファイルを作成し、C:\>adb pull /data/misc/dump.hprof
エミュレータからダンプ ファイルを取得していました。
ここで何が悪いのか誰か知っていますか?コンピューターを再起動した後、最初の数回は機能していました。
android - Android Studio でメモリ ツールを検索するオプションはありますか?
メモリ分析ツールが Android Studio 1.3 に統合されていることは驚くべきことですが、メモリ ダンプに関する主な機能の 1 つは、クラス名で検索する機能です (アクティビティのインスタンスがいくつ存在するかを確認するため)。このオプション (たとえば、MAT で使用可能) は Android Studio になく、機能しません。
それが存在するかどうか知っている人はいますか?
それは計画されていますか?