JAVA_GC
2021-06-27 18:36:02 0 举报
AI智能生成
jvm垃圾回收器垃圾回收算法整合
作者其他创作
大纲/内容
gc的两种垃圾检索算法
引用计数法
每个对象都有一个引用计数器,如果有被引用则计数器+1,如果引用被销毁,则-1,为0则表示改对象为垃圾对象
可达性算法
从GCRoot对象为起始点,可达对象为存活对象,不可达对象则为垃圾对象
gc的三种回收算法
标记-清除算法
标记所有需要清除的对象,然后清除
标记-复制算法
将可用内存分为两块,每次只使用一块,如果一块内存满了,则复制存活对象到另一块中,然后回收本块所有的垃圾
标记-整理算法
引用标记清除算法的思想,只是标记完不直接清除,而是让所有存活的对象向内存一端移动,然后清除标记对象
jvm的10种垃圾回收器中的七种
新生代
Serial
单线程收集器,存在stw
ParNew
和Serial机制一样,只不过是多线程收集,存在stw
Parallel Scavenge
采用复制算法的并行多线程收集器,存在stw
老年代
CMS
采用标记清除算法,多线程收集
开始标记:标记gcroot直接引用的对象,存在stw
并发标记:标记GCRoot跟踪,用户线程并发执行
重新标记:重新标记在并发标记中用户线程导致标记错误的对象,存在stw
并发清除:并发清除垃圾对象,用户线程并发执行
Serial Old
是Serial老年代收集器,采用标记整理算法,单线程收集器
Parallel Old
Parallel Scavenge老年代收集器,采用标记整理算法,多线程收集
整堆
G1
作用于整个堆内存,它是将整个内存分成很多小区,然后根据用户设置的最长可停顿时间来优先回收整个小区的垃圾
0 条评论
下一页