jvm调优相关参数

jvm实用调优参数

性能参数

参数名含义默认值描述
-Xms初始堆大小物理内存的1/64(<1GB)一般和Xmx设置成一致的,避免在GC完之后动态的调整堆大小,调整内存会消耗系统资源,对应用会有影响
-Xmx最大堆物理内存的1/4(<1GB)一般和Xms会设置成一致的,避免在GC完之后动态的调整堆大小,调整内存会消耗系统资源,对应用会有影响
-Xss每个线程的堆栈大小256k/1M1.7之前是256K,1.8改成1M
-XX:NewRatio年轻代(包括Eden和两个Survivor区)与年老代的比值(除去持久代)2Old/New的比值,默认值为2,表示Old代与Young代的比值为2比1,使用G1时一般此参数不设置,由G1来动态的调整,逐渐调整至最优值
-XX:MaxTenuringThreshold新生代晋升老年代阈值15每个对象MinorGC后,年龄就增加1,当超过这个参数值时,就进入老年代
-XX:PreBlockSpin初始自旋次数10使用自旋锁时初始自旋次数,在此基础上上下浮动,生效前提开UseSpinning
-XX:G1HeapRegionSizeG1内堆内存区块大小(Xms + Xmx ) /2 / 2048 , 不大于32M,不小于1M,且为2的指数G1将堆内存默认均分为2048块,1M<region<32 M,当应用频繁分配大对象时,可以考虑调整这个阈值,因为G1的Humongous区域只能存放一个大对象,适当调整Region大小,尽量让其刚好超过大对象的两倍大小,这样就能充分利用Region的空间
-XX:GCPauseIntervalMillis最短多长可以进行一次gc

功能开关

参数名含义默认值描述
-XX:+UseSpinning是否开启自旋锁1.7以后默认开启对synchronized的优化,当运行到synchronized的代码块时,会尝试自旋,如果在自旋期间获取到了锁,那么下次会逐渐的增加自旋时间,反之则减少自旋时间
-XX:+UseG1GC使用G1做垃圾收集器1.8以上默认开启在1.8+后默认使用,在大内存情形下能够发挥更加卓越的性能,相较于其他GC最大的差异是其每次回收老年代时只会回收最值得回收的部分内存空间,而不是整个老年代
-XX:+UseBiasedLocking是否使用偏向锁默认开启、当synchronized代码块只被一个线程使过时,将偏向锁的ThreadID设置为自身线程ID,这样每次运行时只要比对ThreadID和自身一致就直接运行。如果线程较多可以选择关闭,起到一定优化作用

调试参数

参数名含义默认值描述
-XX:+HeapDumpOnOutOfMemoryError生成oom的dump文件默认关闭可以使用jprofiler分析dump文件获取oom的原因
-XX:+PrintGCDetails关闭打印GC的details信息
-XX:+HeapDumpOn某某某Error导出某某某异常的Dump文件

其它参数还有很多,我没理解,所以没写…

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值