垃圾收集器(整理版)

垃圾收集器是内存回收的HotPot具体实现。垃圾回收算法见GC收集算法

GC收集器SerialParNewParallel ScavengeSerial OldParallel OldCMS
应用内存区域新生代新生代新生代永久代永久代永久代
是否是多线程
诞生JDK版本1.3.1之前1.4.0之前1.61.5

Serial 收集器

Serial 收集器是一个单线程收集器,在进行垃圾收集时,必须暂停其他所有工作线程(Stop the world ),直到它收集结束。

在虚拟机运行在Client模式下,它是默认的新生代收集器。

特点

Serial收集器是最基本,发展历史最悠久的收集器。

ParNew 收集器

ParNew收集器其实就是Serial收集器的多线程版。

在Server模式下虚拟机首选的新生代收集器。默认开启的线程数,和CPU的个数相同。

特点

除了Serial收集器以外,只有ParNew收集器能和CMS收集器配合使用

虚拟机参数
- -XX:SurvivorRatio
- -XX:PretenureSizeThreshold
- -XX:HandlePromotionFailure

Parallel Scavenge 收集器

Parallel Scavenge 是一个使用复制算法的新生代多线程收集器。

GC停顿时间短,响应速度快,适合提供对响应速度有要求的和用户交互的程序。
吞吐量达,则可以更高效地利用CPU时间,更快完成任务,适合后台运算的任务。

特点

Parallel Scavenge 收集器目标是达到一个可控制的吞吐量(Throughput)。

吞吐量=运行用户代码时间/(运行用户代码时间+垃圾收集时间)

虚拟机参数
- XX:MaxGCPauseMillis 控制最大垃圾收集停顿时间(大于0的毫秒数)
- XX:GCTimeRatio 直接设置吞吐量大小 (N <100 正整数) 吞吐量=N/(N+1)
- XX:+UseAdaptiveSizePolicy 开关参数,打开后,虚拟机会根据当前系统的运行情况,动态调整JVM参数以提供合适的吞吐量

Serial Old收集器

Serial Old 是Serial 收集器的老年代版本。

特点

作为CMS收集器的后备园,在发生Concurrent Mode Failure 时使用。

和Parallel Scavenge 收集器搭配使用

Parallel Old 收集器

Paralllel Old 是Parallel Scavenge 收集器的老年代版本。

特点

新生代的Parallel Scavenge 和老年代的Parallel Old, 是吞吐量优先应用组合。

CMS收集器

CMS(Concurrent Mark Sweep)是一种以获取最短回收停顿为目标的收集器。

特点

响应速度快,适合B/S系统的服务端。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值