JVM优化之 -Xss -Xms -Xmx -Xmn 参数设置

本文详细解释了JVM内存配置参数Xms, Xmx, Xmn和Xss的作用。Xms设置堆内存初始大小,Xmx设定最大堆大小,Xmn定义新生代的大小,而Xss则规定每个线程的栈内存大小。调整这些参数有助于优化JVM性能,并防止内存溢出。此外,文章还提及了其他如新生代与老年代的比例、线程存活次数、永久代(Java8前)或元空间(Java8后)大小的配置,以及不同垃圾收集器和调优选项的应用。" 133518172,19673933,iPad Air 2023:打造极致编程体验,"['ipad', 'ios', '编程', 'cocoa', '移动开发']
摘要由CSDN通过智能技术生成

XmnXmsXmxXss有什么区别
Xmn、Xms、Xmx、Xss都是JVM对内存的配置参数,我们可以根据不同需要区修改这些参数,以达到运行程序的最好效果。

-Xms 堆内存的初始大小,默认为物理内存的1/64

-Xmx 堆内存的最大大小,默认为物理内存的1/4

-Xmn 堆内新生代的大小。通过这个值也可以得到老生代的大小:-Xmx减去-Xmn

-Xss 设置每个线程可使用的内存大小,即栈的大小。在相同物理内存下,减小这个值能生成更多的线程,当然操作系统对一个进程内的线程数还是有限制的,不能无限生成。线程栈的大小是个双刃剑,如果设置过小,可能会出现栈溢出,特别是在该线程内有递归、大的循环时出现溢出的可能性更大,如果该值设置过大,就有影响到创建栈的数量,如果是多线程的应用,就会出现内存溢出的错误。


除了这些配置,JVM还有非常多的配置,常用的如下:

1.堆设置

  1. -Xms:初始堆大小
  2. -Xmx:最大堆大小
  3. -Xmn:新生代大小
  4. -XX:NewRatio:设置新生代和老年代的比值。如:为3,表示年轻代与老年代比值为1:3
  5. -XX:SurvivorRatio:新生代中Eden区与两个Survivor区的比值。注意Survivor区有两个。如:为3,表示Eden:Survivor=3:2,一个Survivor区占整个新生代的1/5  
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

洛杉矶暖男

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值