我正在使用 IntelliJ 开发 Grails 应用程序,但是随着我们的应用程序的增长,我在使用 Tomcat 插件时遇到了 Permgen 错误。我已经尝试了几种设置 permgen 大小的组合,但它们似乎没有任何效果。
处理这些 Permgen 错误的任何解决方案?
我正在使用 IntelliJ 开发 Grails 应用程序,但是随着我们的应用程序的增长,我在使用 Tomcat 插件时遇到了 Permgen 错误。我已经尝试了几种设置 permgen 大小的组合,但它们似乎没有任何效果。
处理这些 Permgen 错误的任何解决方案?
在 Run 菜单中,选择 Edit Configurations,选择为 Grails 应用程序执行 run-app 的配置,然后输入 permgen 的值,如下图红色所示。
你的意思是你在重新部署几次后得到 perm gen 错误?
如果是,这是 Tomcat 本身的缺陷。修复它的唯一方法是关闭 Tomcat,重新启动它以清空 perm gen,然后重试。
Grails 本身通过使用反射来帮助执行“约定优于编码”,从而导致了这个问题。反射使用 perm gen 来完成它的工作。Hibernate 也可以做出贡献;看
http://www.jroller.com/agileanswers/entry/preventing_java_s_java_lang
如果您将 VisualVM 1.3.2 附加到 Tomcat 进程,您将能够看到所有内存、线程等。如果发生其他事情,这可能会帮助您更好地理解。