JVM历险记第四章:终极杀器

大法师的咒语竟然是在特定的环境中才能实现。这点我是万万没有想到的。

具体说hotspot环境使用的最多。使用的还是三种大杀器

串行搜集器的实现:serial(用于新生代,采用复制算法)、serial old(用于年老代,采用标记/整理算法)

并行搜集器的实现:ParNew(用于新生代,采用复制算法)、Parallel Scavenge(用于新生代,采用复制算法)、Parallel old(用于年老代,采用标记/整理算法)

并发搜集器的实现:concurrent mark sweep[CMS](用于年老代,采用标记/清除算法)

这几种杀器其实就像杀虫剂一样。对于不同的田地使用不同的除草剂。

可以放出6中不同的大招。。

如果第一招使用了serial old那么,第二招就可以使用serial 或者ParNew或者Parallel Scavenge

如果第一招使用了CMS,那么第二招可以使用serial 或者ParNew

如果第一招使用Parallel old,那么第二招只能Parallel Scavenge

套路不同结果不同。。。威力自然也不同,,对于大规模和小规模的堆放的招数肯定也不同。

还有不同攻击力的配比值的符咒:

垃圾搜集器选择参数

 

          UseSerialGC:开启此参数使用serial & serial old搜集器(client模式默认值)。

          UseParNewGC:开启此参数使用ParNew & serial old搜集器(不推荐)。

          UseConcMarkSweepGC:开启此参数使用ParNew & CMS(serial old为替补)搜集器。

          UseParallelGC:开启此参数使用parallel scavenge & parallel old搜集器(server模式默认值)。

          UseParallelOldGC:开启此参数在年老代使用parallel old搜集器(该参数在JDK1.5之后已无用)。

 

JVM各个内存区域大小相关参数

 

          Xms:堆的初始值。默认为物理内存的1/64,最大不超1G。

          Xmx:堆的最大值。默认为物理内存的1/4,最大不超1G。

          Xmn:新生代的大小。

          Xss:线程栈大小。

          PermSize:永久代初始大小。默认为物理内存的1/64,最大不超1G。

          MaxPermSize:永久代最大值。默认为物理内存的1/4,最大不超1G。

          NewRatio:新生代与年老代的比例。比如为3,则新生代占堆的1/4,年老代占3/4。

          SurvivorRatio:新生代中调整eden区与survivor区的比例,默认为8,即eden区为80%的大小,两个survivor分别为10%的大小。(备注:这个参数设定是讲解复制算法那一章中,解决复制算法内存减半的办法。eden区即是复制算法一章中80%的那部分,而survivor区则是两个10%的那部分。)

 

垃圾搜集器性能通用参数

          

          PretenureSizeThreshold:晋升年老代的对象大小。默认为0,比如设为10M,则超过10M的对象将不在eden区分配,而直接进入年老代。

          MaxTenuringThreshold:晋升老年代的最大年龄。默认为15,比如设为10,则对象在10次普通GC后将会被放入年老代。

          DisableExplicitGC:禁用System.gc()。

 

并行搜集器参数

 

          ParallelGCThreads:回收时开启的线程数。默认与CPU个数相等。

          GCTimeRatio:设置系统的吞吐量。比如设为99,则GC时间比为1/1+99=1%,也就是要求吞吐量为99%。若无法满足会缩小新生代大小。

          MaxGCPauseMillis:设置垃圾回收的最大停顿时间。若无法满足设置值,则会优先缩小新生代大小,仍无法满足的话则会牺牲吞吐量。

          

并发搜集器参数

 

          CMSInitiatingOccupancyFraction:触发CMS收集器的内存比例。比如60%的意思就是说,当内存达到60%,就会开始进行CMS并发收集。

          UseCMSCompactAtFullCollection:这个前面已经提过,用于在每一次CMS收集器清理垃圾后送一次内存整理。

          CMSFullGCsBeforeCompaction:设置在几次CMS垃圾收集后,触发一次内存整理。


我的天果然不是一般大师还真驾驭不了这种上乘的杀器。。。。。




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值