我正在尝试分析大约 800mb 的堆转储,这需要比我的 Eclipse 标准更大的堆。但是,当我转到 eclipse.ini 文件并设置 -Xmx2g
(或 -Xmx2048m
)时,我收到错误“无法创建 Java 虚拟机”。
1) 是的,我有足够的内存。 2)我可以将其精确地更改为-Xmx976m。 3)我已经尝试过独立的 MAT 分析器,它可以与 -Xmx1024m 一起使用,不再多一个字节。 4) 不,1gb 不足以分析该堆,我得到了 OOM
这是 eclipse 错误:
这是 MAT 错误:
(我认为它们是相同的,这只是为了让您可以看到 MAT 的示例)
我当前的 eclipse.ini (工作)是:
-startup
plugins/org.eclipse.equinox.launcher_1.1.0.v20100507.jar
--launcher.library
plugins/org.eclipse.equinox.launcher.win32.win32.x86_1.1.0.v20100503
-product
org.eclipse.epp.package.java.product
--launcher.defaultAction
openFile
--launcher.XXMaxPermSize
256M
-showsplash
org.eclipse.platform
--launcher.XXMaxPermSize
256m
--launcher.defaultAction
openFile
-vmargs
-Dosgi.requiredJavaVersion=1.5
-Xms40m
-Xmx384m
有人能解决这个问题吗?
谢谢!
f.
最佳答案
我认为您遇到的这个问题是在 Windows 上吗?
我也遇到了同样的问题。读完你的问题后,我又出去挖掘了。我刚刚找到了解决我的问题的方法。如果是一样的话就试试吧。 在 Eclipse 或 MemoryAnalyzer ini 文件中,从 Xmx 选项中删除 -。我的ini文件就变成了
-vmargs
Xmx1536m
现在就像具有更多内存的魅力一样。 感谢 Alex2308 在该线程中的评论 http://troyworks.com/blog/2008/06/08/eclipse-jvm-terminated-exit-code-1/comment-page-1/#comment-80
<小时/>我之前的解决方案是获取 Linux Live 光盘。启动到 Linux,然后我可以毫无问题地在 MAT 中分配 2g。 (确保您获得适用于 Linux 的 MAT)
这不是最好的解决办法,但我在 MAT 论坛上找不到任何表明存在错误的内容。
关于Eclipse内存分配问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3769874/