問題タブ [gc-roots]
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 - IBM Java heapdump の GC ルート - リストは完全ですか?
IBM JVM で作成した .phd ダンプを Eclipse MAT で解析しています。
「gc_roots」という名前のビューには、次のリストが表示されます。
GC ルートのリストが完全であることを確認できますか?
実行中のスレッドのスタック内のすべてのローカル変数が「不明」セクションに含まれているということですか?
なぜそのような名前が付けられたのですか?
GC ルート リストの完全性に関する私の疑問は、OOM がスローされた時点でヒープにいくつかのかなり大きな弱参照 char バッファーが含まれているという事実に基づいています。SoftReferences も OOM の前にクリアする必要があるため、これは契約違反のようです。
アップデート
これは、同時に書かれたコア ダンプからの GC ルートのリストです。
「Unknown」セクションはありませんが、代わりに「JNI Global」が表示されます。そして、スタックのローカル変数がどこにあるのか、まだ疑問に思っています。