2011-06-04 21 views
4

私は を-mt dumpheap! を-stat dumpheap!私はオブジェクトがSOSで!gcrootを使ってルートを持っていないとはどういう意味ですか?

を使用しているメモリリークを追跡するよ!gcroot

をしかし!gcrootは何も表示さdoesntの、私はこれはオブジェクトを意味考えてきましたrefsはありませんが収集されていません。私は100%自信がありません。

0:018> !dumpheap -mt 000007fee15f0bb0  
     Address    MT  Size 
000000001c87b570 000007fee15f0bb0 3145752  
000000001cb7b588 000007fee15f0bb0 3145752  
000000001e9675a8 000007fee15f0bb0 3145752  
000000001ec675c0 000007fee15f0bb0 3145752 


0:018> !gcroot 000000001ec675c0 
Note: Roots found on stacks may be false positives. Run "!help gcroot" for 
more info. 
Scan Thread 0 OSTHread 1eb4 
Scan Thread 2 OSTHread 1c60 
Scan Thread 4 OSTHread 1370 
Scan Thread 6 OSTHread d5c 
Scan Thread 7 OSTHread 740 
Scan Thread 10 OSTHread 40c 
Scan Thread 14 OSTHread 20d4 
Scan Thread 15 OSTHread 398 
Scan Thread 16 OSTHread 214c 
Scan Thread 17 OSTHread 2538 

答えて

5

オブジェクトが到達不能であることを意味します。

オブジェクトに到達できない場合、ガベージコレクタはオブジェクトをゴミと見なして収集できます。

ライフタイムのある時点でルートを持たないオブジェクトは、通常は発生しますが、ガベージコレクションの仕組みについては実際には不可欠です。

参考文献:

関連する問題