【问题标题】:Intellij / Grails development what to set to avoid PermGen errors?Intellij / Grails 开发要设置什么来避免 PermGen 错误?
【发布时间】:2011-11-26 17:47:25
【问题描述】:

我正在使用 IntelliJ 开发 Grails 应用程序,但随着应用程序的增长,我在使用 Tomcat 插件时遇到了 Permgen 错误。我尝试了几种设置 permgen 大小的组合,但它们似乎没有任何效果。

处理这些 Permgen 错误的任何解决方案?

【问题讨论】:

    标签: tomcat grails intellij-idea permgen


    【解决方案1】:

    你的意思是重新部署几次后得到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 进程,您将能够看到所有内存、线程等。如果发生其他事情,这可能会帮助您更好地理解。

    【讨论】:

    • 是的,这发生在一些修改之后,所以我想扩大 Tomcat 的 permgen 空间。我可以在独立的 tomcat 上轻松做到这一点,但在 IntelliJ 中找不到任何地方来配置 IntelliJ 传递给 Tomcat 插件的永久空间。
    • 扩大 perm gen 只会延迟它。当 perm gen 填满时,您仍然会收到 OOM 错误。
    • 我知道它会延迟,但是每当我更改文件时,东西都会编译等并填满 permgen。我无法解决这个问题。所以在开发过程中扩大 permgen 解决了我的问题。但我会听取您的建议,稍后使用 VisualVM 搜索潜在问题!
    【解决方案2】:

    在“运行”菜单中,选择“编辑配置”,选择为您的 Grails 应用程序执行 run-app 的配置,然后输入 permgen 的值,如下图红色所示。

    【讨论】:

    • 在开发过程中解决了我的 PermGen!非常感谢!!
    猜你喜欢
    • 2011-12-14
    • 1970-01-01
    • 2015-02-15
    • 1970-01-01
    • 2021-06-25
    • 1970-01-01
    • 2012-10-27
    • 2016-04-29
    • 2012-12-28
    相关资源
    最近更新 更多