.Net CLR GC存活标记及固定对象的设置
💡
原文中文,约1200字,阅读约需3分钟。
📝
内容提要
介绍垃圾回收中标记存活对象和固定对象的方法,存活对象通过设置MethodTable的最后一位为1标记,固定对象通过设置对象头的高三位为1标记。同时介绍了判断对象是否被标记和是否为固定对象的方法,以及清除标记的方法。
🎯
关键要点
- 存活标记用于在垃圾回收时标记存活对象。
- 固定对象是在GC堆中不能被移动的对象,通过标记来识别。
- 设置存活对象的方法是将MethodTable最后一位设置为1。
- 判断对象是否存活的方法是检查MethodTable最后一位是否为1。
- 设置对象为固定对象的方法是通过对象头的高三位设置为1。
- 判断对象是否为固定对象的方法是检查对象头的高三位是否为1。
- 清除标记的方法是将MethodTable最后一位设置为0。
➡️