1

我在与 permgen 相关的 eclipse 中出现内存不足异常。我尝试更改 ini 文件中的值,但这没有帮助。我参考了这个网站上的各种相关帖子。我的机器配置是 corei5,8 GB RAM。我正在做的开发需要我运行 Tomcat 和一个 android 应用程序,它将向这个 tomcat 服务器发送 http 请求。我正在发布我现在正在使用的 ini。有人可以帮忙吗?

-startup
plugins/org.eclipse.equinox.launcher_1.3.0.v20120522-1813.jar
--launcher.library
plugins/org.eclipse.equinox.launcher.win32.win32.x86_64_1.1.200.v20120522-1813
-product
org.eclipse.epp.package.jee.product
--launcher.defaultAction
openFile
--launcher.XXMaxPermSize
1024M
-showsplash
org.eclipse.platform
--launcher.XXMaxPermSize
1024m
--launcher.defaultAction
openFile
-vmargs
-Dosgi.requiredJavaVersion=1.5
-Dhelp.lucene.tokenizer=standard
-Xms1700m
-Xmx1700m
-XX:MaxPermSize=1700m
-XX:+UseConcMarkSweepGC
-XX:+CMSClassUnloadingEnabled
-XX:+CMSPermGenSweepingEnabled 
4

1 回答 1

1

是的,1700m 确实是一个巨大的价值。我猜它是你的应用程序本身,它抛出了 permgen 错误,而不是在启动时 eclipse 本身。如果是您的应用程序引发错误,请将以下选项添加到 catalina.bat 文件中的 JAVA_OPTS 中。(在 Tomcat 的 bin 目录中)。

-XX:PermSize=128m -XX:MaxPermSize=256m 

此外,只需浏览您的应用程序,并确保没有为每个 http 请求持续加载的类。这可能是您收到此错误的原因。可能您可以检查服务器日志以查看每个请求都加载了哪些所有类。您可以通过将以下选项添加到 JAVA_OPTS 来启用这些日志。

-XX:+TraceClassLoading -XX:+TraceClassUnloading

如果它与 eclipse 相关,而不是与您的应用程序相关,您可以添加

-XX:MaxPermSize=<value>

到启动配置中的 vm 参数(运行方式-> 运行配置-> )

于 2012-12-14T13:24:15.957 回答