我很好奇clr如何知道任何其他对象没有使用特定对象并且它已经死了我们知道垃圾收集器的基本但是内部clr如何找到死对象.How clr知道对象处于死区。
答案 0 :(得分:1)
https://msdn.microsoft.com/en-us/library/ee787088(v=vs.110).aspx#Anchor_4
垃圾收集包含以下阶段:
垃圾收集器使用以下信息来确定对象是否有效:
堆栈根。由即时(JIT)提供的堆栈变量 编译器和堆栈walker。
垃圾收集句柄。指向托管对象的句柄和 可以由用户代码或公共语言运行库分配。
静态数据。应用程序域中的静态对象可能是 引用其他对象。每个应用程序域都会跟踪它 静态对象。