【发布时间】:2014-03-25 16:34:55
【问题描述】:
虽然我发现了类似的问题,但我似乎已经没有什么建议了,我想问问我还有什么要做的。
我在使用 Eclipse 时内存不足,几个小时后它开始爬到我必须强制退出的地步。最初它会挂起并说诸如“堆空间不足”之类的东西。我在 SO 上搜索了以下内容:
Eclipse indexer hangs with 100% cpu
Eclipse running out of memory
Eclipse java heap space out of memory
所以我开始采纳所有建议,但改进微乎其微。这是我当前的所有更改。
我一直在用 eclipse -debug .options 运行 eclipse,所以我可以检查内存使用情况
.options 文件所在的位置:
org.eclipse.cdt.core/debug/pdomtimings=true
org.eclipse.cdt.core/debug/indexer=true
org.eclipse.cdt.core/debug/parser=true
org.eclipse.cdt.core/debug/deltaprocessor=true
org.eclipse.cdt.core/debug/scanner=true
org.eclipse.cdt.core/debug/model=true
我已经更新了我的 /etc/eclipse.ini 文件(之前是 -Xmx384m,所以现在最大尺寸要大得多)
openFile
-vmargs
-XX:MaxPermSize=256m
-Xms40m
-Xmx2048m
我还更新了索引器选项(窗口 -> 首选项 -> C/C++ -> 索引器)
Cache limit relative to heap size: 25%
Absolute limit: 256 MB
Header file cache: 256 MB
我还取消选中项目 -> 自动构建,因为任何更改都会暂时挂起并构建工作区
我还更新了历史选项(窗口 -> 首选项 -> 常规 -> 工作区 -> 本地历史)
Days to Keep files: 1
Maximum entries per file: 50
Maximum file size (MB): 1
最后,在资源过滤器(项目 -> 属性 -> 资源 -> 资源过滤器)中,我告诉它忽略与 *dox 匹配的索引文件和文件夹
Exclude all: Name matches *dox (file and folders)
当它开始变得超级慢时,我会在运行 eclipse 的地方点击 ctrl + \,我会看到它使用了 100% 的堆空间。尝试将最大大小 (-Xmx) 增加到超过 2048 MB 会导致它抱怨它无法启动 VM,但我想知道这是否不完全是我给它多少空间的情况。
我保持进度窗口打开,这样我就可以看到它正在尝试做什么,通常它在索引时似乎变慢了,但是当它在爬行时,它会很糟糕,以至于仅仅滚动似乎就会让它挂起。我通常别无选择,只能关闭 Eclipse 并重新打开(大约 2 小时后)。
还有什么可以尝试的?这仅仅是内存问题吗?还有什么能让我发现它开始爬行的原因?
这是在 Ubuntu 12.04 和 Eclipse 3.7.2 以及 Java OpenJDK 1.6.0_30-b30 上
【问题讨论】:
-
2048很大,但你的问题显示256,你试过512吗?在安装了一些插件之后,我不得不使用 512 MaxPermSize 运行 eclipse。
-
尝试禁用所有插件,看看是否有什么不同。也许有什么东西在泄漏内存。
-
您可以尝试分析 Eclipse 并查看导致缓慢的原因吗?
-
@BradGardner 我最近添加了 MaxPermSize=256 以查看它是否有所作为(索引器最大内存曾经是 512 mb),它似乎所做的只是减少内存限制的点到达
-
@MeIr 如果插件与插件相同,请转到帮助 -> 关于 Eclipse 平台 -> 安装详细信息 -> 插件,有很多(300 个?)但我自己没有添加。我使用 Ubuntu 的软件中心来安装 Eclipse,并保持简单。也许我找错地方了(我没有看到启用/禁用它的地方)