net GC 学习以及问题

引用对象必要空间开销:对象指针、同步块索引

GC重要点:

  每个应用程序包含一组根,每个根都是一个存储位置,其中包含指向引用类型对象的一个指针,该指针要么指向托管堆中的要给对象,要么为null。(这句话不理解,除了引用类型对象的一个指针以外还有什么呢)

  这句话是原文:(

A single root is a storage location containing a memory
pointer to a reference type object.
This pointer either refers to an object in the managed
heap or is set to null. For example, a static field (defined within a type) is considered a root.

)  

  根包括:静态字段、方法参数、局部变量、CPU寄存器

  GC开始时,首先假设堆中所有的对象都是垃圾。

  然后进行标记:垃圾回收期沿着线程栈上行以检查所有的根。如果发现有一个根引用了一个对象就标记该对象不是垃圾。(问题:堆中对象的成员变量是引用的话,垃圾回收会递归检查,直到遇到被标记的对象终止)

  

posted @ 2016-03-22 20:34  惯性  阅读(266)  评论(0编辑  收藏  举报