JVM-性能调优

JVM调优主要是针对内存管理,包括各个代的大小分片和GC的选择。由于GC发生时会导致应用进程被挂起,所有,JVM调优的主要目的就是尽量减小GC对应用进程的影响,减少Full GC,避免Stop-The-World的放生。

常用调优参数

-Xms,-Xmx:配置堆内存大小。通常为了避免在运行时频繁的分配堆内存,会将这两个参数设置相同的值。

-Xmn:配置新生代空间的大小。新生代Eden,From,To三个区域的比例可以通-XX:ServivorRatio来配置。例如,若 -XX:ServivorRatio=4,那么,Eden:From:To = 4:3:3

-XX:PermSize,-XX:MaxPermSize:配置方法区内存大小。通常设置为相同的值。

-XX:MaxTenuringThreshold:控制对象在经过多少次minor GC之后进入老年代,此参数只有在Serial 串行GC时有效。

-XX:+PrintGCDetails:输出GC的详细信息

-XX:+PrintGCTimeStamps:输出发生GC的时间。

-Xloggc:c:\Java\gc.log:记录GC日志到文件中。

常见的调优策略

1.避免将新生代设置的过小。
如果新生代过小,那么就会频繁的出现Minor GC,这样就会使对象进入老年代的几率增大,当老年代被占用过多时,就会频繁触发Full GC,造成Stop-the-World。

2.避免将新生代设置的过大。
因为如果新生代过大就会导致老年代变小,触发Full GC的几率就增加了,同时,也会导致Minor GC的频率降低,使一些该回收的对象没有得到及时的回收。

3.合理设置对象在新生代中的存活周期
新生代存活周期的值决定了新生代对象在经过多少次Minor GC后进入老年代。因此这个值要根据自己的应用来调优,Jvm参数上这个值对应的为-XX:MaxTenuringThreshold,默认值为15次。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值