Eclipse + GWT – >在开发模式下内存不足

如果我在开发模式下在eclipse中运行我的GWT应用程序并在浏览器中点击一段时间,我总是会在eclipse中出现“内存不足”错误。 我的电脑有16 GB Ram,从未使用超过8GB。

我尝试了几个配置参数。 我的运行配置中的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 

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

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

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

 -Xms128M -Xmx1024M -XX:MaxPermSize=256M 

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

如果我在开发模式下在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热点文档 。