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

时间:2013-08-25 15:29:34

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

如果我在开发模式下在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

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

3 个答案:

答案 0 :(得分:8)

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

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

-Xms128M -Xmx1024M -XX:MaxPermSize=256M

答案 1 :(得分:1)

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

答案 2 :(得分:0)

  

如果我在开发模式下在eclipse中运行我的GWT应用程序并在浏览器中点击一段时间,我总会得到一个“内存不足”#34;日食中的错误。

不完全确定问题是什么,但我确实看到了您当前参数的一些问题。

  1. 你有2个相同的发射器参数。你不需要第二个条目:

    --launcher.XXMaxPermSize
    8192M
    
  2. 确实怀疑你想要8g的PermSize。像512m这样的东西可能要好得多。您可以使用jconsole查看perm空间存储区中的内存量。在下面从jconsole的内存选项卡中拍摄的图像中,右下方突出显示的条形图显示了" Perm Gen"空间。现在它使用26,906kb(或大约27mb)。这就是代码所在的位置,如果你有很多JSP页面可以编译,那么通常需要增加它。

    enter image description here

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

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

    我怀疑你会发现你使用的远远少于#34; Perm Gen"空间。通常只需要-Xmx8192m(或-Xmx8g)。它通常会为堆提供8gb的内存,这通常是短期对象。它还相应地扩展了各种不同的内存分区。

  3. 有关各种堆空间的更多信息,请参阅Java hotspot documentation