我在 Ubuntu 11.10 下使用 Struts2 + Spring 和 Hibernate 框架在 NetBeans 中创建了一个项目。第一次运行没问题,但是当我第二次或第三次运行它时,我不断收到此异常。没有 Maven 一切顺利。我安装了 maven ,是的,我在 中apt-get install
添加了这一行,但没有运气。如何从中获得更好的性能?export MAVEN_OPTS=-Xmx512m
usr/bin/mvn
问问题
25570 次
3 回答
5
你应该添加这一行:
export MAVEN_OPTS="-Xmx512M -XX:MaxPermSize=512M"
请注意,一些用户报告双引号会产生问题,因此您可能希望使用:
export MAVEN_OPTS=-Xmx512M -XX:MaxPermSize=512M
编辑:
由于您使用的是 Tomcat,因此请使用以下命令:
- 打开tomcat/bin/catalina.sh
- 将此行添加到JAVA_OPTS="-Djava.awt.headless=true -Dfile.encoding=UTF-8 -server -Xms512m -Xmx1024m -XX:NewSize=256m -XX:MaxNewSize=256m -XX:PermSize=256m -XX :MaxPermSize=256m -XX:+DisableExplicitGC"
- 保存退出,重启Tomcat
于 2012-06-08T13:59:33.890 回答
4
当对象没有正确清理它们的内存时,permgen space 通常会抛出这个错误。通常是“孤岛”的原因,即引用仍然指向它们的对象,但是作为程序员的您无权访问这些引用,因为它们位于您的空间之外。您可能正在使用导致此问题的库,并且在您停止使用该库之前它可能不会消失。至于哪个图书馆,我不确定,有很多文章解释如何找到它,但这是一件苦差事,可能需要一段时间,除非你很幸运。内存分析器可以提供一些想法。
于 2012-06-08T13:55:41.123 回答
3
-Xmx512m
不会帮助你,因为你正在增加堆空间。您用完了 PermGen 空间,而不是堆空间。
尝试增加 PermGen 空间并放置一些标志以使其成为垃圾。以下是更多信息:在 Tomcat 6 中重复出现“PermGen”
于 2012-06-08T13:53:35.037 回答