JVM的区域分类

[img]/upload/attachment/63715/44a2d77f-c0b4-3b5b-b30e-710ab3d410cc.jpg[/img]
Eden区域: 新的对象生成时所使用的空间
Survivor区域: 包括from, to两个空间,用于保留正在使用的对象,延迟把这些对象移动到Old区域直到他们经历多次Scavenge GC后
New区域: 包括Eden和Survivor区域
Old区域: 寿命较长的对象保留在该区域

在Eden区域被用完的时,Scavenge GC将会自动启动,并把那些当前还存在引用的对象从Eden区域移动到to区域中。每次Scavenge GC时在form或to里还在使用的对象将会来回移动,直到他们的移动次数达到一定的限制,该限制是由MaxTenuringThreshold决定,MaxTenuringThreshold的默认值是32。这样的话一个对象可以在from和to之间进行32次交换,然后才会被移动到Old区域。

JVM启动参数
-Xms: Heap Size的初始值
-Xmx: Heap Size的最大值
-Xmn: New区域的大小
-XX:SurvivorRatio=<n>: Eden区域的大小除以from或to区域的大小,from和to区域的大小是相等的。n默认是8

GC种类
Scavenge GC: 回收New区域的对象
Ful GC: 回收New和Old两个区域的对象

优化目标
?减少Scavenge GC次数
?缩短Scavenge GC的时间
?减少Full GC次数,尽量使Full GC不发生

优化调整的顺序

?增加Survivor区域
?增加New区域
?增加Heap区域


其他

通常-Xmn的值设置为-Xmx值的三分之一。在项目里如果临时对象使用的多的情况下,也可以将-Xmn的值设置为-Xmx值的一半。



通过调整SurvivorRatio的值可以控制对象在Survivor区域里的生存时间,SurvivorRatio的值越小,对象在Survivor区域里生存的时间越长。这样可以减少对象移动到Old领域,相应的减少Full GC的回数。


-Xverbosegc : 垃圾回收的详细输出的参数

kill -3 <pid> : 输出JVM进程里正在处理的内容
------转达自Leoh’s Blog url:http://in5i.com/blog/?p=189
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值