1

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

4

5 に答える 5

4

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

于 2010-12-28T21:08:33.553 に答える
2

これは、SOS拡張機能をロードする場合、WinDbgデバッガーを使用して実行できます。

.loadby sos.dll mscorwks

メモリ内のオブジェクトのアドレスを見つける必要があります。おそらく!dumpheapコマンドを使用して行うのが最適です。!gcroot <address>次に、オブジェクトアドレスを使用して、オブジェクトへのすべての参照を検索するために実行できます。

于 2010-12-28T21:53:41.740 に答える
1

デバッグ中に、Windbgを使用してこのデータを取得できます。Windbgには特定のコマンドがあります。私はWindbgの専門家ではありませんが、これで始められます

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

于 2010-12-28T21:11:13.703 に答える
1

私はそのようなタスクのためにANTSメモリプロファイラーが大好きです。

于 2010-12-28T21:29:52.333 に答える
1

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

レイモンド・チェンは、このトピックに関する良い投稿をここに持っています:

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

于 2010-12-28T21:48:43.107 に答える