随笔分类 - JVM
摘要:HotSpot 使用 OopMap 把引用类型的指针记录下来,让 GC Roots 的枚举变得快速准确。
为了减少更新 OopMap 的开销,引入了 安全点。GC STW 时,线程需要跑到距离自己最近的安全点,更新完 OopMap 才能挂起。
处于Sleep 或者 Blocked 状态的线程无法跑到安全点,需要引入安全区域。GC 的时候,不会去管处于安全区域的线程,线程离开安全区域的时候,如果处于 STW 则需要等待直至恢复。
阅读全文
摘要:什么是垃圾:没有任何引用指向的一个或多个对象。
如何识别垃圾,有两种算法:
1. 引用计数法:通过给对象添加被引用的次数来识别。优点是回收简单及时;缺点是无法解决循环引用。
2. 可达性分析法:从一系列根对象(GC Roots)开始,根据引用关系向下搜索,如果某个对象到 GC Roots 间没有任何引用,则此对象就是垃圾。优点是解决了循环引用;缺点是耗时和 STW。
阅读全文

浙公网安备 33010602011771号