常用的JVM配置参数有哪些?

常用的JVM配置参数有哪些?

  • -Xms:初始大小内存,默认为物理内存的1/64等价于-XX:InitialHeapSize

  • -Xmx:最大分配内存,默认为物理内存的1/4等价于-XX:MaxHeapSize

  • -Xss:设置单个线程栈的大小,一般默认为512k~1024k等价于-XX:ThreadStackSize

    • 当值等于0的时候,代表使用得是默认大小
  • -Xmn:设置年轻代大小

  • -XX:MetaspaceSize:设置元空间大小(元空间与永久代最大的区别为:元空间并不在虚拟机中,而使用的是本地内存,因此,元空间只收本地内存的限制

    • 手动设置:-XX:MetaspaceSize=1024m
  • 典型设置案例

  • -XX:+PrintGCDetails:输出详细GC收集日志信息

在这里插入图片描述

在这里插入图片描述

当堆内存不够的话,会爆出OOM错误

在这里插入图片描述

  • -XX:SurvivorRatio:设置新生代中 eden 和 S0/S1 空间比例,默认 -XX:SurvivorRatio=8,Eden : S0 : S1 = 8 : 1 : 1

    ​ -XX:SurvivorRatio=4==》Eden : S0 : S1 = 4 : 1 : 1

  • -XX:NewRatio:配置年轻代和老年代在堆结构的占比,默认 -XX:NewRatio=2 新生代占1,老年代占2,年轻代占整个堆的 1/3

    ​ -XX:NewRatio=4 新生代占1,老年代占4,年轻代占整个堆的 1/5

  • -XX:MaxTenuringThreshold:设置垃圾最大年龄。默认是15

    -XX:MaxTenuringThreshold=0:设置垃圾最大年龄。如果设置为0的话,则年轻代对象不经过Survivor区,直接进入老年代。对于老年代比较多的应用,可以提高效率。如果此值设置为一个较大的值,则年前对象会在Survivor区进行多次复制,这样可以增加对象在年轻代的存活时间,增加在年轻代被回收的概率!

在这里插入图片描述

因为是由四位二进制数组成,所以垃圾最大年龄为15.因为0-15是16个数字

在这里插入图片描述

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值