jvm堆的内存分配

jvm 参数如下
-Xms400m
-Xmn300m
-Xmx400m
-XX:PermSize=140M
-XX:MaxPermSize=140M
-XX:+PrintGCTimeStamps
-XX:+PrintGCDetails
-verbose:gc
-Xloggc:gc.log
-Djava.rmi.server.hostname=127.0.0.1
-Dcom.sun.management.jmxremote.port=9880
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.authenticate=false

启动myeclipse6.5,查看gc.log,只有一条gc信息:

2.253: [GC 2.253: [DefNew: 245760K->24701K(276480K), 0.0625636 secs] 245760K->24701K(378880K), 0.0626390 secs]

年轻代中内存区域分为Eden,Survivor1,Survivor2这三块,内存占用比例默认为8:1:1,由于新生代分配300m,所以Eden应该分配240M(245760K),Survivor1,Survivor2各为30M,通过jconsole查看各个区域所占内存与这此也相符
[img]http://dl.iteye.com/upload/attachment/0072/0044/aa5ee84d-9773-32a0-a9ba-f73fff0eacb6.jpg[/img]

[img]http://dl.iteye.com/upload/attachment/0072/0046/66cf0e66-af42-3b86-bdae-a3abc454ee61.jpg[/img]
现再来分析gc原因,当DefNew(即为eden区,不知道为啥打印的日志名和jconsole上显示的名字不一样)内存达到245760K,正好为分配的240m,eden区内存已满开始回收,245760K->24701K,回收了245760K-24701K=215M,回收率还不错,还有25m左右没有回收。其中276480K经计算发现是eden+一个Survivor所占用内存,不知道何意?
245760K->24701K(378880K), 整个堆空间也就eden这一区进行了回收。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值