在WinXP SP3 32Bit上运行Eclipse 3.5.1,JDK 1.6.0_17,内存为3.5 GB。
我知道已知的Eclipse best practices,仍在试图找出eclipse.ini。
这将启动:-Xmx588m
,但不会:-Xmx589m
与-XX:MaxPermSize
相同。高于-XX:MaxPermSize=140m
的任何内容都无法启动
死亡屏幕与this相似(取自here)。
关于为什么会发生这种情况的任何想法?
答案 0 :(得分:4)
请参阅this eclipse bug。
一般问题是jvm需要一个连续的内存块。在Windows上,该过程将获得2个Gigs,其他加载的库被放置在内存空间的不同区域。如果一个库恰好放在中间,基本上可以减少一半的尺寸。
Eclipse启动程序将加载一些系统dll来执行图形处理,特别是user32.dll可能会导致第三方库被加载,具体取决于计算机上安装的内容(见here)。
要获得更高的内存限制,可以强制将jvm分叉到与eclipse启动器分开的进程中。在vm初始化其内存之前,jvm进程不会加载这些额外的库。通过使用指向javaw.exe的-vm参数来执行此操作:
eclipse -vm C:\jdk\jre\bin\javaw.exe
答案 1 :(得分:1)
另请参阅this bug 203325,了解有关如何使用以下工具监控内存使用情况的建议:
注意:commented here:
如果您没有声明最大内存限制,则将其留给操作系统内存管理器。
-Xmx <size>
对于编写像J2ME这样的小型设备非常有用 如果您正在为受内存限制的小型设备进行编程,那么即使您可能正在使用PC,也可以使用-Xmx
JVM属性来模拟小型设备。