添加属性键值对:
-Xms256m 堆内存初始
-Xmx512m 堆内存最大
-XX:MaxNewSize=256m 内存永久保存区域 默认
-XX:MaxPermSize=512m 内存永久保存区域 最大值
1、java.lang.OutOfMemoryError: Java heap space ---- JVM Heap(堆)溢出。JVM 在启动的时候自动设置 JVM Heap的值,其初始被单(即 -Xms)是物理内存的 1/64, 最大空间(-Xmx)不可超过物理内存
可以利用 JVM 提供的 -Xmn -Xms -Xms -Xmx 等选项可以进行设置。 Heap 的大小是 Young Generation 和 Tenured Generaion 之和。
解决方法: 手动设置 JVM Heap (堆) 的大小。
2、java.lang.OutOfMemoryError: PermGen space ---- PermGen space 溢出。
PermGen space 的全称是 Permanent Generation space, 是指内存的永久保存区域。
为什么会内存溢出,这是由于这块内存主要是被 JVM 存放 Class 和 Meta 信息的, Class 在被 Load 的时候被放入PermGen space 区域, 它和存放 Instance 的 Heap 区域不同, sun的 GC 不会在主程序运行期对 PermGen space 进行清理, 所以如果你的 App 会载入很多 CLASS 的话, 就很可能出现 PermGen space 溢出。
解决办法: 手动设置 MaxPermSize 的大小