再遇到这个问题有必要总结一下。
这个问题在eclipse开发过程后中简称能够遇到。问题的含义是老生代的内存不足了。那么遇到这个问题可能你首先问自己的问题是我现在的老生代大小是多少。这个问题很简单。打开Jconsole工具,那里面清楚的记录了各个内存端的大小。
如果你发现你的Perm Gen内存峰值就很小,并且在spring容器刚刚启动的时候就已经达到了70%以上,那么这个out of memeory 可能就是早晚的事情。
这个时候我们要想到三个地方能够配置内存:第一个elipse 的eclipse.ini文件。第二个tomcat容器(或者插件的)内存配置。第三个eclipse中jdk的内存配置。
第一个文件一般大小不足不会出题头的错误。
第二个问题和第三个问题是我们关注的焦点。今天我就是着实纠结了。因为我的tomcat容器是一个在maven下的插件。那么这个东西的内存如何配置呢?网上搜索了一个办法列在这里供后来人参考。我今天配置后没有起到作用。
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.1</version>
<configuration>
<JAVA_OPTS>-server -XX:PermSize=128M -XX:MaxPermSize=256m</JAVA_OPTS>
</configuration>
</plugin>
并且,我还尝试了在这里配置这个参数。同样在jconsole中没有发现效果。
最终,我设置了jdk的大小。解决了这个问题。
折腾了这么久可真够累人的。所以提醒在用elcipse的朋友们在使用eclipse环境的时候不要忽略了参数的设置。省的不是的out of memory来骚扰。嘻嘻~~欢迎大家猛撇砖头。