串行收集器 : Serial , Serial Old
- 只有一个垃圾回收线程执行,用户线程会暂停
- 适用 : 内存较小的嵌入式设备
并行收集器 [吞吐量优先] : Parallel Scanvenge、Parallel Old
- 多条垃圾收集线程并行工作,但用户线程会是等待状态
- 适用 : 科学计算、后台处理
并发收集器 [停顿时间优先] : CMS、G1
- 用户线程 , 垃圾收集线程同时执行 , 垃圾收集执行时 , 不会停顿用户线程的运行
- 适用 : 时间要求
G1/CMS 区别 :
- CMS : 对老年代回收
- G1 回收年轻代/老年代
- G1 用 Region 对堆内存划分,并基于标记整理算法,减少垃圾碎片的产生
- 初始化标记是,搜索可达对象用 Card Table
选择合适的垃圾收集器 :
- 优先调整堆的大小
- 当内存 < 100M,用 : 串行收集器
- 当单核,并对停顿时间没要求,用 : 串行
- 当允许停顿时间 > 1 秒,用 : 并行
- 当响应时间最重要,并 < 1 秒,用 : 并发收集器
用 G1 收集器条件 :文章来源:https://www.toymoban.com/news/detail-512023.html
- 50% 以上的堆被存活对象占用
- 对象分配和晋升的速度变化非常大
- 垃圾回收时间较长
开启垃圾收集器 :文章来源地址https://www.toymoban.com/news/detail-512023.html
# 串行
-XX:+UseSerialGC
-XX:+UseSerialOldGC
# 并行(吞吐量优先)
-XX:+UseParallelGC
-XX:+UseParallelOldGC
# 并发收集器(响应时间优先)
-XX:+UseConcMarkSweepGC
-XX:+UseG1GC
到了这里,关于JVM GC 区别的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!