2.堆内存相关

2.1.显式指定堆内存–Xms和-Xmx

  1. -Xms2G -Xmx5G

2.2.显式新生代内存(Young Generation)

1.通过-XX:NewSize和-XX:MaxNewSize指定

  1. -XX:NewSize=256m
  2. -XX:MaxNewSize=1024m

2.通过-Xmn[unit]指定

  1. -Xmn256m

XX:NewRatio=
比如下面的参数就是设置新生代(包括Eden和两个Survivor区)与老年代的比值为1。也就是说:新生代与老年代所占比值为1:1,新生代占整个堆栈的 1/2。

  1. -XX:NewRatio=1

2.3.显式指定永久代/元空间的大小

JDK 1.8 之前

  1. -XX:PermSize=N //方法区 (永久代) 初始大小
  2. -XX:MaxPermSize=N //方法区 (永久代) 最大大小,超过这个值将会抛出 OutOfMemoryError 异常:java.lang.OutOfMemoryError: PermGen

JDK 1.8 的时候,方法区(HotSpot 的永久代)被彻底移除了(JDK1.7 就已经开始了),取而代之是元空间,元空间使用的是本地内存。

  1. -XX:MetaspaceSize=N //设置 Metaspace 的初始(和最小大小)
  2. -XX:MaxMetaspaceSize=N //设置 Metaspace 的最大大小,如果不指定大小的话,随着更多类的创建,虚拟机会耗尽所有可用的系统内存。


3.垃圾收集相关

3.1.垃圾回收器

  • 串行垃圾收集器
  • 并行垃圾收集器
  • CMS垃圾收集器
  • G1垃圾收集器 ```lua -XX:+UseSerialGC -XX:+UseParallelGC -XX:+UseParNewGC -XX:+UseG1GC
  1. <a name="VkeDL"></a>
  2. ### <br />3.2.GC记录
  3. ```lua
  4. -XX:+UseGCLogFileRotation
  5. -XX:NumberOfGCLogFiles=< number of log files >
  6. -XX:GCLogFileSize=< file size >[ unit ]
  7. -Xloggc:/path/to/gc.log