JVM参数测试情况

JVM包括如下核心组件:
1、堆
2、栈
3、持久代及方法区
4、JIT编译器
5、代码缓存
JVM内存空间分为三部分: Permanent Space、Young Generation、Old Generation。
其中,Young Generation又分为:Eden Space、Survivor0、Survivor1;
这里Total Heap Size是不包括PermSize的,所以实际上java进程占用的内存会比设置-Xms和-Xmx更大。

设置JVM总的内存大小参数 :
-Xms1024m
-Xmx1024m
-XX:PermSize=150m
-XXMaxPermSize=150m

设置Young Generation的大小方法:
(1)-XX:NewSize=300m和 -XX:MaxNewSize=300m(Eden Space+Survivor0+Survivor1); 
(2)-Xmn300m(Eden Space+两个Survivor Space的大小);
(3)-XX:NewRatio=2; 
优先级:
(1)最高优先级:  -XX:NewSize=300m和-XX:MaxNewSize=300m
(2)次高优先级:  -Xmn300m  (默认等效效果是:-XX:NewSize==-XX:MaxNewSize==300m)
(3)最低优先级:-XX:NewRatio=2
推荐使用的是-Xmn参数,原因是这个参数很简洁,相当于一次性设定NewSize和MaxNewSIze,而且两者相等。
调整各区比例:
1)-XX:SurvivorRatio=8(Eden/Suvivor)
2)-XX:NewRatio=2(Young/Old)
以下为测试情况:
1、设置JVM参数
-Xms1024m -Xmx1024m -XX:PermSize=150m  -XX:MaxPermSize=150m -XX:NewSize=300m -XX:MaxNewSize=300m -XX:NewRatio=2 -XX:SurvivorRatio=8 
 

 结果:Eden Space + Old Gen = 1024M,  Perm Gen = 150M, Old Gen = (Eden Space)*2 =600M, 小于1024M-Eden Space=724M,则Old Gen=724M
 
2、
-Xms1024m -Xmx1024m -XX:PermSize=256m  -XX:MaxPermSize=256m -XX:NewSize=300m -XX:MaxNewSize=300m -XX:NewRatio=2 -XX:SurvivorRatio=8
 

 结果:Eden Space + Old Gen = 1024M,  Perm Gen = 256M, Old Gen = (Eden Space + S0 + S1)*2

3、
-Xms1024m -Xmx1024m -XX:PermSize=256m  -XX:MaxPermSize=256m -XX:NewSize=384m -XX:MaxNewSize=384m -XX:NewRatio=2 -XX:SurvivorRatio=8
 

  结果:Eden Space + Old Gen = 1024M,  Perm Gen = 256M, Old Gen = (Eden Space + S0 + S1)*2 = 921.25M, OldGen大于 1024M- (Eden Space + S0 + S1)=563,则取1024M-Eden Space = 640M
4、
-Xms1024m -Xmx1024m -XX:PermSize=256m  -XX:MaxPermSize=256m -XX:NewSize=600m -XX:MaxNewSize=600m -XX:NewRatio=2 -XX:SurvivorRatio=8
 

 结果:Eden Space + Old Gen = 1024M,  Perm Gen = 256M, Old Gen =424M,Eden Space = 600M
 
结论是:Xms和Xmx设定的内存大小 = Eden Space + Old Gen, 而Perm Gen 、S0、S1的内存 不受Xmx控制。
结论跟大家情况不符,很是奇怪,本人不才尴尬,不知道为什么会这样子, 哪位大拿不吝指教
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值