如果我在开发模式下在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
但我仍然得到错误。有什么方法可以阻止这种情况吗?
答案 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;日食中的错误。
不完全确定问题是什么,但我确实看到了您当前参数的一些问题。
你有2个相同的发射器参数。你不需要第二个条目:
--launcher.XXMaxPermSize
8192M
我确实怀疑你想要8g的PermSize。像512m
这样的东西可能要好得多。您可以使用jconsole查看perm空间存储区中的内存量。在下面从jconsole的内存选项卡中拍摄的图像中,右下方突出显示的条形图显示了" Perm Gen"空间。现在它使用26,906kb(或大约27mb)。这就是代码所在的位置,如果你有很多JSP页面可以编译,那么通常需要增加它。
如果您使用以下参数运行您的应用程序,您应该能够与jconsole连接以查看它是如何进行的:
-Dcom.sun.management.jmxremote
-Dcom.sun.management.jmxremote.authenticate=false
我怀疑你会发现你使用的远远少于#34; Perm Gen"空间。通常只需要-Xmx8192m
(或-Xmx8g
)。它通常会为堆提供8gb的内存,这通常是短期对象。它还相应地扩展了各种不同的内存分区。
有关各种堆空间的更多信息,请参阅Java hotspot documentation。