摘要:java.lang.OutOfMemoryError: Java heap这个错误可以通过配置-Xms和-Xmx参数来设置。当出现大量局部变量,递归时,会发生栈空间OOM(java.lang.StackOverflowError)之类的错误。

以下是 JVM 常见十大配置参数:

1. -Xms 初始堆大小。 只要启动,就占用的堆大小。

2. -Xmx 最大堆大小。 java.lang.OutOfMemoryError: Java heap这个错误可以通过配置-Xms和-Xmx参数来设置。

3. -Xss 栈大小分配。 栈是每个线程私有的区域,通常只有几百K大小,决定了函数调用的深度,而局部变量、参数都分配到栈上。

当出现大量局部变量,递归时,会发生栈空间OOM(java.lang.StackOverflowError)之类的错误。

4. XX:NewSize :设置新生代大小的绝对值。

5. -XX:NewRatio 设置年轻代和年老代的比值。 比如设置为3,则新生代: 老年代=1:3,新生代占总heap的1/4。

6. -XX:MaxPermSiz e:设置持久代大小。

java.lang.OutOfMemoryError:PermGenspace这个OOM错误需要合理调大PermSize和MaxPermSize大小。

7. -XX:SurvivorRatio :年轻代中Eden区与两个Survivor区的比值。注意,Survivor区有form和to两个。比如设置为8时,那么eden:form:to=8:1:1。

8. -XX:HeapDumpOnOutOfMemoryError :发生OOM时转储堆到文件,这是一个非常好的诊断方法。

9. -XX:HeapDumpPath: 导出堆的转储文件路径。

10. -XX:OnOutOfMemoryError :OOM时,执行一个脚本,比如发送邮件报警,重启程序。后面跟着一个脚本的路径。

今天,再给大家推荐一个腾讯课堂的 《Java虚拟机》 训练营课程,原价99元,粉丝特惠,仅需 0.02元

讲师将带着大家棒打 Java 虚拟机这个 进阶大厂的拦路虎,从理论到实战逐步攻克。

正好宅在家,可以好好学习了。

点击「 阅读原文 」带你飞~

相关文章