私は数百万のオブジェクトがメモリにぶら下がっています。それらのgcrootを見つけたいので、オブジェクトアドレスが必要です。!DumpHeapは、待機するのに我慢できたよりも時間がかかっているすべてのオブジェクトをダンプします。出力を1つのオブジェクトアドレスのみに制限するにはどうすればよいですか?VisualStudio2008を使用しています。
質問する
1812 次
4 に答える
3
ジェイソン・エヴァンスは正しい。私のバージョンには-lスイッチがないため、使用する回避策は次のとおりです。endパラメーターを使用して、出力を次のようなアドレス範囲に制限します。
!dumpheap -mt 0794f29c 0 04000000
最後のアドレスは、私が許可する最高のアドレスです。小さなステップでアドレスを増やすことによって、私は最終的に最初のいくつかのオブジェクトをヒットしました。
于 2011-08-14T19:34:15.490 に答える
2
!dumpheap -type System.String -short
オブジェクトのアドレスのみをダンプします
于 2012-10-09T07:23:09.563 に答える
1
于 2010-01-04T15:12:50.617 に答える
0
開始するのに最適な場所は、-stat引数です。これにより、システム内のすべてのオブジェクトではなく、ライブオブジェクトテーブルの概要がダンプされます。特にどのオブジェクトが最もオーバーヘッドを引き起こしているのかについての良いアイデアが得られます
!dumpheap -stat
また、WinDbgを使用してこの種の問題を追跡するのを支援することを目的としているため、次のブログ記事を参照することをお勧めします。
于 2010-01-04T15:16:00.707 に答える