JVM调优总结

1、堆内存

(1)调整最大堆内存和最小堆内存

-Xmx:堆内存最大值(默认值是物理内存的1/4(<1GB))

–Xms:初始堆内存最小值(默认值是物理内存的1/64(<1GB))

默认(MinHeapFreeRatio参数可以调整)空余堆内存小于40%时,JVM就会增大堆直到-Xmx的最大限制;默认(MaxHeapFreeRatio参数可以调整)空余堆内存大于70%时,JVM会减少堆直到 -Xms的最小限制。

实际工作当中,这两个参数,一般设置值都是一样,减少频繁的申请内存,减少频繁的GC导致的内存空间的抖动。

(2)设置年轻代大小

-Xmn:年轻代;Sun官方推荐配置为整个java堆的3/8

jdk1.3或1.4

-XX:NewSize:设置年轻代大小

-XX:MaxNewSize:设置年轻代最大值

(3)设置年轻代与年老代比值

-XX:NewRatio 年轻代与老年代的比值。

新生代:老年代=1:4,即新生代占整个堆的1/5。

(4)调整幸存取的比值

-XX:SurvivorRatio两个Survivor区和eden的比值,一般是2:8

(5)GC日志

-XX:+PrintGCDetails 打印出GC的详细日志

(6)查看GC错误日志

-XX:+HeapDumpOnOutOfMemoryError -XX:+HeapDumpPath=d:/a.dumpOOM时导出堆到文件,导出OOM到a.dump文件中,利用jdk自带的jvisualvm.exe查看该错误信息。

(7)永久代参数调整

-XX:PermSize:初始空间(默认为物理内存的1/64)

-XX:MaxPermSize:最大空间(默认为物理内存的1/4)

2、栈参数调优

(1)调整每个线程栈空间的大小

-Xss:设置每个线程栈空间的大小。经验值在3000~5000K左右。

(2)设置线程栈的大小

-XXThreadStackSize:设置线程栈的大小

3、JVM其他参数

(1)设置内存页的大小

-XXThreadStackSize:

(2)设置原始类型的快速优化

-XX:+UseFastAccessorMethods:

(3)设置关闭手动GC

-XX:+DisableExplicitGC:

(4)设置垃圾最大年龄

-XX:MaxTenuringThreshold:

​​​​​​​......

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值