今天启动项目遇到了PermGen space错误,java.lang.OutOfMemoryError: PermGen space。
PermGen space的全称是Permanent Generation space,是指内存的永久保存区域。内存中的这个区域是用来存放class和meta信息的,Class在被jvm load的时候,class信息会被放入该区域。它不同于存放实例的Heap区域,GC不会在主程序运行期间对PermGen space进行清理。
如果我们的工程中有很多类文件或者加载了很多jar包(jar包中的Class信息会被加载到PermGen space)的话,就很可能出现java.lang.OutOfMemoryError: PermGen space这个问题。我们知道可以通过jvm参数 -XX:MaxPermSize=256m
来配置这部分堆内存的大小。
1.在eclipse中如何配置tomcat的内存大小?
点击“Run Configurations”,在VM arguments文本框内设置 -XX:MaxPermSize=256m的值即可, 当然此处还可以添加其他jvm参数,比如最大内存,最小内存等。如图所示:
2.点击Window-Preferences-Java-Installed JREs-选择JDK-右侧Edit-设置Default VM aguments
3.找到MyEclipse的安装目录,E:\myeclipse2013\myeclipse.ini有一个myeclipse.ini配置文件,设置如下:
-vmargs -Xmx512m -XX:MaxPermSize=256m -XX:ReservedCodeCacheSize=64m