Avoid Permgen Space error when running tomcat from eclipse

在 启动过程中出现 内存 溢出问题,抛出类似如下异常信息:
java.lang.OutOfMemoryError: Java heap space

可以尝试办法:
A.修改Tomcat/bin/catalina.bat,添加如下内容
set JAVA_OPTS=-Xms256m -Xmx512m -Djava.awt.headless=true [-XX:MaxPermSize=128M]

B.eclipse->windows->preferences..->tomcat->jvm..->jvm文本框里,添加-Xms256m -Xmx512m

C.eclipse->preference->java->instal jres->edit,增加参数:-Xms256m -Xmx512m

参考原因: JVM中如果98%的时间是用于GC且可用的, Heap size不足2%的时候将抛出此异常信息。
JVM堆的设置是指java程序运行过程中JVM可以调配使用的内存空间的设置.JVM在启动的时候会自动设置Heap size的值,其初始空间(即-Xms)是物理内存的1/64,最大空间(-Xmx)是物理内存的1/4。
可以利用JVM提供的-Xmn -Xms -Xmx等选项可进行设置。Heap Size 最大不要超过可用物理内存的80%,一般的要将-Xms和-Xmx选项设置为相同,而-Xmn为1/4的-Xmx值。
Heap size的 -Xms -Xmn 设置不要超出物理内存的大小。否则会提示“Error occurred during initialization of VM Could not reserve enough space for object heap”。



Eclipse中调整tomcat内存大小:
 
window-preferences-tomcat-jvm settings-append jvm parameter -
 
add
 
"-Xms384m -Xmx1024m"
 
这个是针对Eclipse中的tomcat的debug模式有效地,在系统环境变量中设置set JAVA_OPTS= -Xms1024m -Xmx1024m 之类在Eclipse中的debug模式是无效的。

作者:Angelo Lee
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利.
原文地址:https://www.cnblogs.com/yefengmeander/p/2887592.html