JVM垃圾收集器
2023-02-16 13:00:49 0 举报
JVM垃圾收集器
作者其他创作
大纲/内容
重新标记
可以搭配使用
G1收集器运行示意图
用户线程4
GC线程
GC线程2
最终标记
用户线程1
整堆收集器
GC线程1
CPU0
Parallel Scavenge
CPU2
老年代采取标记-整理算法暂停所有用户线程
Serial / Serial Old 收集器运行示意图
GC线程3
cpu1
并发标记
Parallel Old
ParNew
G1
筛选回收
老年代收集器
CPU3
用户线程3
Serial Old 收集器是单线程收集器,采用“标记-整理”算法。 在Server模式下,主要有两大用途:一、JDK1.5之前与Parallel Scavenge搭配使用,二、JDK1.5之后作为CMS收集器的后备预案,在并发收集器发生Concurrent Mode Failure时使用。
用户线程2
Serial Old
重置线程
新生代采用复制算法暂停所有用户线程
cpu2
ParNew是Serial的多线程版本,除此之外和Serial完全相同。 在Server模式下的虚拟机首选的新生代收集器,其中一个和性能无关的原因是:“除了Serial外只有ParNew能和CMS配合使用” ParNew收集器在低CPU环境中收集性能不一定比Serial高,原因是ParNew存在线程交互的开销。但随着CPU数量的增加,逐渐拉开优势。
cpu0
Serial
ParNew / Serial Old 收集器运行示意图
初始标记
Parallel Scavenge / parallel Old 收集器运行示意图
后备收集器
CPU1
并发清除
CMS
ParNew收集器是使用了-XX:+UserConcMarkSweepGC后默认的新生代收集器,也可以使用-XX:+UseParNewGC指定。 其中在多CPU环境下,可以使用-XX:ParallelGCThreads指定垃圾收集的线程数
cpu3
CMS收集器运行示意图
复制算法
新生代收集器
收藏
收藏
0 条评论
下一页