JVM 参数设置

堆内存

-Xss #设置栈大小

栈空间不足时对应 java.lang.StackOverFlow

栈内存

-Xms #最小堆内存
-Xmx #最大堆内存

堆空间不足时对应 java.lang.OutOfMemory

排查堆内存溢出时,可以把堆内存设置小一些,这些可能尽早暴露潜在的问题

元空间(Metaspace) <-- 1.8及以后,方法区在这里

元空间默认没有大小限制,因此不会内存溢出。为了演示内存溢出,需设置:

-XX:MaxMetaspaceSize=8m

元空间不足时对应 java.lang.OutOfMemory: Metaspace

1.8及以后才叫元空间。在此之前称为永生代

永生代(PermGen space)  <-- 1.8以前,方法区在这里

-XX:MaxPermSize=8m

永生代不足时对应 java.lang.OutOfMemory: PermGen space

永久代在堆内存,元空间在系统内存(本地内存)

StringTable

-XX:+PrintStringTableStatistics  # 打印 StringTable 的信息

垃圾回收器

-XX:+PrintGCDetails -verbose:gc # 提供全面的GC日志信息
This article was updated on