【问题标题】:Eclipse + GWT -> Out of memory in development modeEclipse + GWT -> 开发模式内存不足
【发布时间】:2013-08-25 15:29:33
【问题描述】:

如果我在 Eclipse 中以开发模式运行我的 GWT 应用程序并在浏览器中单击一段时间,我总是在 Eclipse 中收到“内存不足”错误。我的电脑有 16 GB 内存,从来没有超过 8 GB。

我尝试了几个配置参数。我的运行配置中的 VM 参数包含以下参数:“-Xms8192m -Xmx8192m”

即使在 eclipse.ini 中我也测试了几个配置参数,现在看起来像这样:

--launcher.XXMaxPermSize
8192M
-showsplash
org.eclipse.platform
--launcher.XXMaxPermSize
8192m
--launcher.defaultAction
openFile
--launcher.appendVmargs
-vmargs
-Dosgi.requiredJavaVersion=1.6
-Xms8192m
-Xmx8192m

但我仍然收到错误消息。有什么办法可以预防吗?

【问题讨论】:

  • 您的应用程序中似乎存在内存泄漏。寻找一些结构(很可能是Collection),从中添加对象并且永远不要删除它们。使用分析器查看您的内存正在使用什么。
  • 使用jvisualvm查看你使用了多少内存,一定是这里的东西:C:\Program Files\Java\jdk1.7.0_05\bin\jvisualvm.exe
  • 你有堆栈跟踪吗?
  • 你在这个项目中使用 JRebel 吗?
  • 我不认为 8Go Xmx 也是一个好主意。将其重新设置为 -Xms256m~512m -Xmx1024m~2048m -XX:MaxPermSize=512m。

标签: java eclipse gwt ide out-of-memory


【解决方案1】:

如果浏览器应用程序抛出OutOfMemoryError,那么您不需要更改 Eclipse 设置 (eclipse.ini),这仅适用于 Eclipse 本身(更多内存,通常更快的工作台)。

要增加应用程序的内存(从 Eclipse 启动的任何 Java 应用程序),请转到“运行”菜单中的 Run/Debug configurations... 并在应用程序运行配置的 Arguments 选项卡上设置 VM arguments

-Xms128M -Xmx1024M -XX:MaxPermSize=256M

【讨论】:

    【解决方案2】:

    把它放在运行配置中的 vm 参数中: -Xmx2048M -XX:MaxPermSize=512m

    【讨论】:

      【解决方案3】:

      如果我在 Eclipse 中以开发模式运行我的 GWT 应用程序并在浏览器中单击一段时间,我总是在 Eclipse 中收到“内存不足”错误。

      不完全确定问题出在哪里,但我确实看到您当前的论点存在一些问题。

      1. 您有 2 个相同的启动器参数。您不需要第二个条目:

        --launcher.XXMaxPermSize
        8192M
        
      2. 真的怀疑你想要 8g 的 PermSize。像512m 这样的东西可能要好得多。您可以使用 jconsole 查看 perm 空间桶中有多少内存。在从 jconsole 的内存选项卡中截取的下图中,右下角突出显示的栏显示了“Perm Gen”空间。现在它正在使用 26,906kb(或大约 27mb)。这就是代码的去处,如果您有许多要编译的 JSP 页面,则通常必须增加代码。

        如果您使用以下参数运行您的应用程序,您应该能够连接 jconsole 以查看它的运行情况:

        -Dcom.sun.management.jmxremote
        -Dcom.sun.management.jmxremote.authenticate=false
        

        我怀疑你会发现你在“Perm Gen”领域的使用量要少得多。 -Xmx8192m(或-Xmx8g)通常是您所需要的。它通常会为堆提供 8gb 的内存,这通常是短暂的对象。它还相应地扩展各种不同的内存分区。

      有关各种堆空间的详细信息,请参阅Java hotspot documentation

      【讨论】:

        猜你喜欢
        • 2011-11-08
        • 2011-04-03
        • 1970-01-01
        • 2011-01-01
        • 1970-01-01
        • 2013-02-10
        • 1970-01-01
        • 1970-01-01
        • 2013-10-23
        相关资源
        最近更新 更多