记录JVM参数配置

通用配置

  • -XX:+DisableExplicitGC  禁用程序中手动调用GC
  • 调试时打开 -XX:+PrintClassHistogram-XX:+PrintGCDetails-XX:+PrintGCTimeStamps  -XX:+PrintCommandLineFlags 
  • -XX:+HeapDumpOnOutOfMemoryError 打印oom error  -XX:HeapDumpPath 设置导出堆的存放路径  , 发生OOM时将dump文件导出以便分析。  
  • -XX:+HeapDumpBeforeFullGC  打印fullGC日志  -XX:HeapDumpPath=  指定fullgc日志路径

堆内存配置

  • -Xms: 初始堆内存大小
  • -Xmx: 最大堆内存大小
  • -XX:NewRatio 老年代与新生代的比例
  • -XX:SurvivorRatio: eden区与survivor区的比例
  • -Xmn: 指定新生代的大小  

例:

-Xms10m -Xmx10m  -Xmn4m -XX:SurvivorRatio=8

堆内存初始为10m,最大10m,新生代4m,老年代便是(10-4)m;eden区与survivor区比例为8,eden区便是3.2m,两个survivor区大小都是0.4m。

-Xms10m -Xmx10m  -XX:NewRatio=3 -XX:SurvivorRatio=8

堆内存初始为10m,最大10m,老年代大小是新生代三倍,老年代7.5m,新生代2.5m。

栈内存配置

  • -Xss : 规定栈内存大小, 决定栈最大可调用深度。   -Xss1m

老年代配置

  • -XX:MaxTenuringThreshold  经过多少次GC后进入老年代。 
  • -XX:PretenureSizeThreshold  达到多大的对象会被直接存入老年代。

-XX:MaxTenuringThreshold=15  -XX:PretenureSizeThreshold=1024

超过1m的对象直接进入老年代,经过15次gc的进入老年代。

需要注意TLAB区域,JVM默认是打开TLAB的,当对象较大不能进入TLAB时才会被分配到堆上,才可能被分配到老年代。

TLAB配置

  • -XX:+UseTLAB 启用TLAB,默认是开启的。 

  • -XX:-UseTLAB 禁用TLAB,对象直接进入堆空间。

  • -XX:+TLABSize  TLAB空间初始大小

  • -XX:TLABRefillWasteFraction  设置能进入TLAB空间对象的大小,默认为64。表示对象大小大于TLAB空间1/64时,不能进入TLAB。

  • -XX:+PrintTLAB  打印tlab信息, 要与 -XX:DoEscapeAnalysis一起使用。

  • -XX:+ResizeTLAB  自调整TLABRefillWasteFraction 阀值以及TLAB的大小。 关闭后TLAB需要自己设置大小。

方法区配

方法区以前也会被称作永久代,jdk1.8后改为了元空间(Metaspace)的存储空间。Metaspace使用的是本地内存,而不是堆内存。默认情况下元空间与本地内存有关。

  • -XX:MetaspaceSize=N  元空间初始大小
  • -XX:MaxMetaspaceSize=N  元空间最大大小

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值