2010-12-28 10 views
1

.NET 3.5では、指定されたインスタンスに保持されている参照の数を確認できますか?.NET 3.5の特定のインスタンスに保持されている参照数を確認してください

+0

実行時またはプロファイラでは? – SLaks

+3

OldNewThingにはこれに関する投稿があります:http://blogs.msdn.com/b/oldnewthing/archive/2010/08/11/10048629.aspx – CodesInChaos

+0

あなたはそれが必要なものについて説明できますか? – CodesInChaos

答えて

1

CLRによって参照カウントが維持されないため、この情報をCLR経由で実行時に取得することはできません。これの大きなヒントは、ガベージコレクタは世代別であり、参照カウント駆動ではないということです。

.loadby sos.dll mscorwks 

あなたが必要があります:あなたはSOS拡張をロードする場合、これはWinDbgデバッガーを使用して行うことができ

http://blogs.msdn.com/b/oldnewthing/archive/2010/08/11/10048629.aspx

4

実行時にこれを行うことはできません。

1

デバッグ中に、Windbgを使用してこのデータを取得できます。 Windbgには特定のコマンドがあります。私は、Windbgのの専門家ではないですが、これは私は、タスクのそれらの種類のANTSメモリプロファイラを愛する

http://www.bytetalk.net/2009/03/windbg-tips-and-tricks.html

1

を始めるでしょう。

2

レイモンド・チェンは、ここでは、このトピックに関する良い記事を持っていますおそらく!dumpheapコマンドを使用して最もよく行われたメモリ内のオブジェクトのアドレスを見つけることができます。オブジェクトアドレスを使用すると、!gcroot <address>を実行して、オブジェクトへのすべての参照を見つけることができます。

関連する問題