問題タブ [heap-dump]
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 - プログラムでjmapヒストグラムを取得するには?
jmap -histo
監視対象のアプリケーション内から、プログラムでの出力に相当するものを取得したいと思います。HotSpot 診断 Bean を使用してヒープ ダンプをトリガーできることがわかりましたが、ヒストグラム データを取得する方法がわかりません。出来ますか ?
java - メモリ管理の分析
JavaWebアプリケーションのメモリ管理分析を行っています。
Tomcatを起動する前は、RAMの空きメモリは約595 MBでしたが、サーバーを起動すると、空きメモリは151MBになります。ヒープダンプを取得したとき、オブジェクトは262MBを占めていました。
では、Tomcatだけで残りの181 MBが必要になるのでしょうか?
もう1つの質問は、500人のユーザーで負荷テストを実行したことです。空きメモリは8MBになります。ここでヒープダンプを取得したときは、約265MBでした。したがって、151MBの空き容量が8MBに削減されます。理由は何でしょうか。
top
コマンドを使用してRAMの空きメモリを確認したことに注意してください。
java - ヒープ ダンプ ファイルを解析しています
明らかにオブジェクトが多すぎるアプリケーションを使用しています。次のメッセージが表示されます。
java.lang.OutOfMemoryError: Java ヒープ スペース ヒープを java_pid2468.hprof にダンプしています ... ヒープ ダンプ ファイルが作成されました [18.711 秒で 1087703293 バイト] スレッド「メイン」で例外 java.lang.OutOfMemoryError: Java ヒープ スペース
しかし、MAT にプラグインをインストールしたので、構築したオブジェクトの数と、どのオブジェクトが最も多くのメモリを占有しているかを確認したいと考えました。ただし、hprof ファイルを解析しようとすると、次のエラー メッセージが表示されます。
内部エラーが発生しました:「'C:\Users\sekulicd\workspace\Csv_validation_MyIsam\java_pid2468.hprof' からのヒープ ダンプの解析中」。Java ヒープ領域
hprof ファイルのサイズは 1,087,703,293 バイトです。次の質問に対する回答が必要です。
- hprof ファイルのサイズが原因で解析に失敗しましたか?
- エラー「 java.lang.OutOfMemoryError: Java heap space 」が発生しないプロジェクトに対してのみ hprof ファイルを解析できますか?
- このファイル (1,087,703,293 バイト) を解析する方法はありますか?
c# - C#のOutOfMemoryExceptionでヒープダンプ/ヒストグラムを作成する方法はありますか?
Javaの世界に戻ると、JVMが最初のOutOfMemoryErrorでヒープダンプファイルを作成するように指定できました。C#に相当するものはありますか?
ヒープダンプが理想的ですが、ヒストグラムで解決します。
これを自動的に行う方法がない場合、この例外をフックしてから手動でヒープをウォークする方法はありますか?
java - ヒープ ダンプ ファイルに対して Java ガベージ コレクションを実行できますか?
巨大な Java ヒープ ダンプ ファイルがあります。また、JVMによってガベージコレクションされる(またはそう期待される)到達不能オブジェクトも含まれています(私は信じています)。
このファイルに対してガベージ コレクターを実行できるツールはありますか?
- 無駄なデータを取り除く
- さまざまなアルゴリズムを使用してガベージ コレクションを検証/シミュレートし、それらがどのように機能するかを確認します
- ガベージ コレクションの問題を特定する
java - すでにクラッシュしたシステムでヒープダンプを取得する
メモリリークが原因でTomcatアプリケーションがクラッシュしました。クラッシュしたsystem/jvmでヒープダンプを取得したいと思います。出来ますか?私はwindows/tomcat 6をどのように使用していますか?
android - Androidでヒープダンプを分析するにはどうすればよいですか?
logcat に「dalvikvm: GC_CONCURRENT...」というメッセージが大量に表示されるので、いろいろ調べた結果、Eclipse メモリ アナライザーをダウンロードしました。使い方はわかったのですが、方法がわかりません。それを理解するために。これまでメモリ リークに対処したことがないので、ご容赦ください。
「リーク容疑者」には、「システム クラス ローダー」によってロードされた「android.content.res.Resources」、「android.graphics.Bitmap」、および「org.apache.harmony.xnet.provider.jsse.TrustManagerImpl」が含まれます。それが何を意味するのか、それがどのように役立つのか、私にはよくわかりません。私が作ろうとしているアプリではビットマップさえ使いません。
これはどのように私を助けることになっていますか?
java - JMAP - java で実行されないダンプ: runtime.exec()
「jmap -dump:format =b;」を実行しようとしました。file」コマンドをruntime.exec()に追加しましたが、date、pwdなどの他のコマンドが正常に機能している場所では実行されません。誰でも理由を知ることができますか?
public static void コマンド (文字列 s) {
garbage-collection - 手動 GC の実行後、generate heap dump は劇的に減少します
これは、スタック オーバーフロー フォーラムでの私の最初の投稿です。最近、Java OOME の問題がいくつか発生しており、jvisualvm、yourkit、および eclipse mat ツールを使用して、いくつかの問題を特定して修正できます...
分析中に観察された 1 つの動作は、jconsole または jvisualvm を使用して手動でヒープダンプを作成すると、ヒープダンプの生成後に jvm で使用されるヒープ サイズが劇的に (1.3 GB から 200 MB に) 減少することです。誰かがこの振る舞いについてアドバイスしてもらえますか? 使用されているヒープサイズが 1.5GB を超えていることがわかると、manaul GC を実行すると、システムが使用されているヒープサイズの数値を下げて jvm の再起動が発生しないため、これは便利な機能です。
追加の詳細についてお知らせください
ありがとうグル
unix - ヒープダンプを生成するかどうかをその場で選択することは可能ですか?
UNIX上で実行されているWebSphereサーバーにデプロイされたアプリケーションがあり、2つの問題が発生しています。
- 数分後に回復するシステムハング-調査するには、スレッドダンプ(javacore)が必要になります。
- システムがハングし、回復せず、WebSphereを再起動する必要があります。調査するには、スレッドダンプとヒープダンプが必要になります。
問題は、システムハングが発生したときに、それが問題1か2かがわからないことです。
理想的には、最初に手動でスレッドダンプを生成し、システムが回復するかどうかを確認するのを待ちます。そうでない場合は、WebSphereを再始動する前に、スレッド・ダンプとヒープ・ダンプを生成します。
kill -3
(またはkill -QUIT
)コマンドについて知っています。このコマンドは、スレッドダンプのみ(パラメーターの場合IBM_HEAPDUMP=false
)、またはスレッドダンプとヒープダンプ(の場合IBM_HEAPDUMP=true
)を生成します。ただし、IBM_HEAPDUMP
WebSphereを開始する前に設定する必要があり、WebSphereの実行中に変更することはできません。
IBM_HEAPDUMP
パラメータとkill -3
コマンドに関して、私の理解は正しいですか?
また、私が説明した方法でログを取得することは可能ですか?(つまり、JVM診断を生成するときに、ヒープダンプを生成するかどうかをオンザフライで選択します)