调整jvm内存:
1. java.lang.OutOfMemoryError: Java heap space --- JVM Heap (堆) 溢出
JVM 在启动的时候会自动设置 JVM Heap 的值, 其初始空间 (即 -Xms) 是物理内存个的1/64 ,最大空间(-Xmx) 不可超过物理内存。
可以利用JVM 提供的 -Xmn -Xms -Xmx 等选项可以进行设置。 Heap 的大小时 Young Generation 和 Tenured Generation 之和
在 JVM 中如果98% 的时间用于GC ,且可用的Heap size 不足2% 的时候将抛出此异常信息。
解决办法: 手动设置 JVM Heap (堆)的大小
2. java.lang.OutOfMemoryError : PermGen space --- PremGen space 溢出。
PremGen space 的全称是 Permanent Generation space ,时值内存的永久保存区域。
为啥会内存溢出,这是由于这块内存的主要是被JVM存放的Class 和 Meta信息的,Class在被Load的时候被放入 PermGen space 区域,
它和存放Instance 的Heap区域不同 ,sun 的GC 不会在程序运行期对 PermGen space 进行清理,所以如果你的APP 会载入很多Class 的话,就可能出现
PermGen space 溢出
解决方法: 收送设置 MaxPermSize 大小
eclipse /myeclipse 中添加属性键值对:
-Xms256
-Xmx512
-XX:PermSize=64M
-XX:MaxPermSize=128M
-Xms:java Heap初始大小。 默认是物理内存的1/64。
-Xmx : java Heap 最大值。 建议设置为物理内存的一半。 不可超过物理内存。
-XX:PermSize : 设定内存的永久保存区初始大小 ,缺省值为64M。
-XX:MaxPermSize : 设定内存的永久保存区最大值 ,缺省为64M 。