5

如果我在 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

但我仍然得到错误。有什么办法可以防止这种情况发生吗?

4

3 回答 3

8

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

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

-Xms128M -Xmx1024M -XX:MaxPermSize=256M
于 2013-11-21T11:38:34.927 回答
1

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

于 2013-11-21T13:47:08.503 回答
0

如果我在 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 热点文档

于 2014-03-12T21:26:31.233 回答