2012-04-18 136 views
2

当我尝试设置-Xmx1024m我收到消息:为什么我不能在eclipse.ini中将-Xmx设置为1024m?

cannot create VM 

但我不久1500米免费的计算机上。怎么可能? 谢谢。

+3

您可能有1500m空闲空间,但它可能过于分散,无法为JVM分配一个1Gig的块。 – mcfinnigan 2012-04-18 10:34:10

+0

我不认为这是诊断。这只是最大的。你确定你知道如何编写eclipse.ini吗?你有-vmargs吗? – 2012-04-18 11:12:46

+0

@MarkoTopolnik如果虚拟内存过于分散并且没有连续的1 GB可用块,则Java将在启动时保留虚拟内存的连续空间,则Java将停止并出现错误 – 2012-04-18 11:27:26

回答

1

我相信这些评论是正确的关于内存空间太碎片分配一个足够大的内存块。

查看Eclipse bug https://bugs.eclipse.org/bugs/show_bug.cgi?id=188968

碎片通常归咎于加载到地址空间中间的windows dll。特别是,初始屏幕需要加载user32.dll,这反过来可以根据您的计算机上安装的内容拉入第三方库。

获得更多内存的一种方法是让JVM分入第二个进程而不是在eclipse进程中运行(这是默认设置)。这wiki page详细介绍了eclipse.ini文件的-vm设置。您可以通过将-vm指向javaw.exe来强制vm在第二个进程中分叉。

这应该有所帮助,因为在第二个进程中分叉jvm会在加载图形dll以显示启动屏幕之前启动vm。

相关问题