Parallel 收集器

1、如何查看JVM的运行参数
[root@vm-10-11-146-1 deploy]# jcmd 29473 VM.flags
29473:
-XX:CICompilerCount=3 -XX:InitialHeapSize=62914560 -XX:MaxHeapSize=1004535808 -XX:MaxNewSize=334495744 -XX:MinHeapDeltaBytes=524288 -XX:NewSize=20971520 -XX:OldSize=41943040 -XX:+UseCompressedClassPointers -XX:+UseCompressedOops -XX:+UseParallelGC 

-XX:+UseParallelGC
使用平行收集器(新生代) PS - Parallel Scavenge
平行收集器是Server端的默认收集器,是一个主要针对 新生代 的收集器。
使用复制算法,多线程并行。

  1. 特点
    被称为是吞吐量优先收集器,它的目标就是为了是JVM达到一个可控的吞吐量,所谓吞吐量是指:代码运行时间/代码运行时间+GC时间

  2. 使用场景
    和用户体验优先的场景不一样,主要是用在保证后台服务尽快运行完成,而不是提高响应速度。适合在后台运算,又不需要太多交互的任务。

PS收集器在新生代采用多线程复制算法。


什么是复制算法?复制算法在新生代是怎样实现的?

复制算法是指,将内存划分成两个相同大小的区域A/B,将A中还存活的对象复制到B区域,然后再将A区域中所有的对象给清除。
缺点是会有额外的空间支出。
新生代中的复制算法没有将新生代完全分成1:1的区域,而是新增了两个survivor区域A、B,AB各占新生代的10%。当触发新生代GC时,先将Eden区和A或者B(第一次GC时候,可能A和B都是空的)的存活对象复制到另外一个survivor区域。然后将该两个区域清空。


可和新生代PS收集器相配合的老年代的GC策略是Parallel Old和Serial Old。
Parallel Old是PS收集器的老年代版本,使用多线程和“标记-整理”算法。


什么是标记整理
标记整理算法,在标记清除算法(标记而后清除无用对象)之后,将有用的对象向一段移动,并更新其引用的指针。
缺点是要移动对象,会造成性能的影响。


Serial Old 是单线程的标记整理算法。



3. 重要参数以及工具
通过
jstat -gcutil 23980 1000

来查看jvm进程的GC情况。


如何在gc有问题的时候临时开启gc日志?

jinfo -flag +PrintGCDetails 29473

有哪些参数可以实时开启和关闭?

java -XX:+PrintFlagsFinal -version|grep manageable

查看运行时对象分布情况?

jmap -histo:live 19035
jmap -heap 19035
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值