JVM
文章平均质量分 77
小新是也
一只上进的程序猿
展开
-
浅谈 JVM GC 的安全点与安全区域
HotSpot 使用 OopMap 把引用类型的指针记录下来,让 GC Roots 的枚举变得快速准确。为了减少更新 OopMap 的开销,引入了 安全点。GC STW 时,线程需要跑到距离自己最近的安全点,更新完 OopMap 才能挂起。处于Sleep 或者 Blocked 状态的线程无法跑到安全点,需要引入安全区域。GC 的时候,不会去管处于安全区域的线程,线程离开安全区域的时候,如果处于 STW 则需要等待直至恢复。原创 2021-09-12 18:13:13 · 758 阅读 · 0 评论 -
哦?原来这就是 JVM 垃圾!
什么是垃圾:没有任何引用指向的一个或多个对象。如何识别垃圾,有两种算法:1. 引用计数法:通过给对象添加被引用的次数来识别。优点是回收简单及时;缺点是无法解决循环引用。2. 可达性分析法:从一系列根对象(GC Roots)开始,根据引用关系向下搜索,如果某个对象到 GC Roots 间没有任何引用,则此对象就是垃圾。优点是解决了循环引用;缺点是耗时和 STW。原创 2021-09-11 17:43:45 · 164 阅读 · 0 评论