垃圾收集器

4 篇文章 0 订阅
  • 1.如何查看默认的垃圾回收器

java -XX:+PrintCommandLineFlags -version 最后一个参数

各收集器在堆区使用情况
简写英文术语展开
参数

新生代

  • 1.串行收集器:Serial收集器

单线程的收集器,在进行垃圾收集时候,必须暂停其它所有的工作线程,直到它收集结束
Serial串行收集器

  • 2.ParNew(并行)收集器

使用多线程进行垃圾回收,在垃圾收集时,会Stop-the-World暂停其它所有工作线程直到它收集结束
ParNew并行收集器ParNew收集器其实是Serial收集器新生代的并行多线程版本,最常见的应用场景是配合老年代的CMS GC工作,其余的行为和Serial收集器完成一样,ParNew垃圾收集器子啊来收集过程中同样也要暂停所有其它的工作线程.它是很多java虚拟机运行在Server模式下新生代的默认垃圾回收器

常用对用JVM参数:-XX:+UseParNewGC 启用ParNew收集器,只影响新生代的收集,不影响老年代,开启上述参数后,会使用:ParNew(young区用)+Serial Old的收集器组合,新生代使用复制算法,老年代使用标记-整理算法

java8已不推荐使用

  • 3.并行收集器
    并行收集器

Parallel Scavenge收集器类似ParNew也是一个新生代垃圾回收器,使用复制算法,俗称吞吐量优先收集器。一句话:Serial收集器在新生代与老年代的并行化

它关注的是:
**可控制的吞吐量(Thoughput=运行用户代码时间/(运行用户代码时间+垃圾收集时间)),**也即比如程序运行100min,垃圾收集时间1min,吞吐量是99%,高吞吐量意味着搞笑利用CPU时间,多用于后台运算而不需要太多交互的任务.

自适应调节策略是ParallelScavenge收集器与ParNew收集器的一个重要区别,动态调整这些参数以提供最合适的停顿时间(-XX:MaxGCPauseMills)或最大的吞吐量

常用JVM参数:**-XX:+UseParallelGC或-XX:+UseParallelOldGC(可互相激活)**使用Parallel Scanvenge收集器

Parallel Old是Parallel Scanvenge的老年代版本

  • 4.CMS收集器

(Concurrent Mark Sweep:并发标记清除),是一种以获取最短回收停顿时间为目标的收集器

适合应用在互联网站或者B/S系统的服务器上,这类应用尤其重视服务器的响应速度,希望系统停顿时间最短.CMS非常适合堆内存大、CPU核数多的服务器应用,也是G1出现之前大型应用首选收集器.

并发标记清除,并发收集低停顿,并发指的是与用户线程一起执行.
CMS收集器

  • 5.G1收集器

在这里插入图片描述
G1收集器特性特点
在这里插入图片描述堆分区
说明在这里插入图片描述在这里插入图片描述

如何选择垃圾收集器

单CPU或小内存,单机程序 =====> -XX:+UseSerialGC

多CPU,需要最大吞吐量,如后台计算型应用 =======>
-XX:UseParallelGC 或者
-XX:UseParallelOldGC

多CPU,追求低停顿时间,需快速响应如互联网应用
-XX:+UseConcMarkSweepGC
-XX:+ParNewGC

类型

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值