转自 https://blog.csdn.net/qdgengwenfei/article/details/71455432
PermGen space的全称是Permanent Generation space,是指内存的永久保存区域.内存中的这个区域是用来存放class和meta信息的,Class在被jvm load的时候,class信息会被放入该区域.它不同于存放实例的Heap区域,GC不会在主程序运行期间对PermGen space进行清理.
上网查的加大PermGen space即可.在tomcat的catalina.bat的JAVA_OPTS 变量前设置JAVA_OPTS=" -XX:PermSize=97m -XX:MaxPermSize=256m″
然而这种方法没有解决问题,后来看到一篇文章给解决了
解决办法:
设置run as --->run configuragtions--->jre标签下的属性VM arguments:-server -Xms512m -Xmx1024m -XX:PermSize=512m -XX:MaxPermSize=512m -XX:+CMSClassUnloadingEnabled -XX:+PrintGCDetails -Xloggc:%M2_HOME%/gc.log -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=%M2_HOME%/java_pid.hprof 其中参数说明如下:-XX:+CMSPermGenSweepingEnabled : 允许permgenspace的垃圾回收-XX:+CMSClassUnloadingEnabled : allows the garbage collector to remove even classes from the memory-XX:PermSize=256M -XX:MaxPermSize=256M : raises the amount of memory allocated to the permgenspace