2009-07-17 7 views

答えて

2

あなたの後ろのものが簡単にアクセスできるかどうかは分かりません。

JPDA(Java Platform Debugger Architecture)はデバッガの構築を可能にするため、内部を掘り下げたい場合には適しています。役に立つかもしれないblog on the JPDAがあります。ドキュメント、FAQ、サンプルコード、フォーラムへのリンクについてはSun Developer Network JPDA pageをご覧ください。良好な出発点であってもよい

2つのインタフェースは、次のとおり

  • com.sun.jdi.ObjectReference:ターゲットからのjava.lang.ClassのインスタンスVM
  • com.sun.jdi.VirtualMachineの:仮想マシンは、それはあなたがそれを使用したいが、あなたがそれを必要とする場合は、あなたのメモリ使用状況を分析heapdumpを取り、MemoryAnalyzerまたはJHatでそれを開くためにどのように少しはおそらくあなたを与えるだろう依存
0

このようなメカニズムはありませんし、GCに必要な実際の理由はありません。

+0

GCは、ガベージコレクションを行うかどうかを知るために、オブジェクトへの参照が存在するかどうかを知る必要があります。 – notnoop

+3

@msaeed:いいえ、GCはオブジェクトが参照されているかどうかを知る必要がありますが、マーク中に1つの参照が見つかった場合は、参照を保持しているオブジェクトについて何も知る必要はありません)オブジェクトは生きていて、知る必要があるだけです。 – Fredrik

+1

@Fredrik:循環参照がガベージコレクションでどのように説明されていますか? – zakovyrya

2

メモリリークを探している場合は、Eclipse MATでヒープダンプを解析すると非常に便利です。オブジェクトを選択して「GCルーツ」へのパスを尋ねることができます。つまり、このオブジェクトをガベージコレクションすることを維持しているすべての参照チェーンを表示することができます。

0

をデバッグ対象あなたが必要とする情報ヒープダンプを取る別の方法はhereです。

0

GCはこれをサポートしていませんが、JDPA APIはこれをサポートしていません。しかし、私はJavaアプリケーションでこのようなことをすることに非常に慎重になるでしょう。時間とメモリの両方で非常に高価になる可能性があります。

関連する問題