---
title: Java Xms Xmx
date: 2019-10-06 20:08:49
categories: java
---
## 堆设置
- **-Xms** 是指程序启动时初始内存大小(此值可以设置成与-Xmx相同,以避免每次GC完成后 JVM 内存重新分配)。
- **-Xmx** 指程序运行时最大可用内存大小,程序运行中内存大于这个值会 OutOfMemory。
- **-Xmn** 年轻代大小(整个JVM内存大小 = 年轻代 + 年老代 + 永久代)。
- **-XX:NewRatio** 年轻代与年老代的大小比例,-XX:NewRatio=4 设置为4,则年轻代与年老代所占比值为1:4。
- **-XX:SurvivorRatio** 年轻代中Eden区与Survivor区的大小比值,-XX:SurvivorRatio=4,设置为4,则两个Survivor区与一个Eden区的比值为 2:4
- **-XX:MaxPermSize** 设置永久代大小。
- **-XX:MaxTenuringThreshold** 设置垃圾最大年龄。
如果设置为0的话,则年轻代对象不经过Survivor区,直接进入年老代。对于年老代比较多的应用,可以提高效率。如果将此值设置为一个较大值,则年轻代对象会在Survivor区进行多次复制,这样可以增加对象再年轻代的存活时间,增加在年轻代即被回收的概论。
- **-Xss** 设置每个线程的堆栈大小。
Java Xms Xmx