Eclipse耗尽内存并且运行缓慢

时间:2014-03-25 16:34:56

标签: java eclipse memory

虽然我发现了类似的问题,但我似乎已经没有任何建议,并且想过要求SO留下我要做的事情。

我在使用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

我还更新了索引器选项(Window - > Preferences - > C / C ++ - > Indexer)

Cache limit relative to heap size: 25%
Absolute limit: 256 MB
Header file cache: 256 MB

我也取消选中了Project - >自动构建,因为任何更改都会暂时挂起并构建工作区

我还更新了历史记录选项(窗口 - >首选项 - >常规 - >工作区 - >本地历史记录)

Days to Keep files: 1
Maximum entries per file: 50
Maximum file size (MB): 1

最后,在资源过滤器(项目 - >属性 - >资源 - >资源过滤器)中,我告诉它忽略与* dox匹配的索引文件和文件夹

Exclude all: Name matches *dox (file and folders)

当它开始变得超慢时,我会点击ctrl + \我运行eclipse,我会看到它使用100%的堆空间。试图将最大大小(-Xmx)增加到超过2048 MB会导致它抱怨它无法启动VM,但我想知道这是不是我给它多少空间的情况。

我保持进度窗口打开,这样我就可以看到它正在尝试做什么,并且通常它在索引时似乎变慢,但是当它爬行时,它会非常糟糕,只是滚动似乎让它挂起。我通常别无选择,只能关闭Eclipse并重新打开(约2小时后)。

还有什么可以尝试的?这只是一个记忆问题吗?还有什么可以让我发现它为什么开始爬行?

这是在Ubuntu 12.04和Eclipse 3.7.2以及Java OpenJDK 1.6.0_30-b30

2 个答案:

答案 0 :(得分:6)

经过1个月的CDT-Eclipse工作,我突然遇到了同样的问题。我试图增加内存参数,卸载插件等,但没有结果。但是,我找到了非常有用的建议:

  

"无论何时为Mozilla源树创建新工作区,都可以   应确保在工作区中关闭以下两个设置   首选项(Window> Preferences,或Eclipse> Preferences)之前   在该工作空间中创建项目:
   - 在"一般>工作区",禁用"自动构建"
   - 在" C / C ++> Indexer",禁用"自动更新索引"
  https://developer.mozilla.org/en-US/docs/Eclipse_CDT

我的问题消失了。

答案 1 :(得分:1)

它可能是一个特定的附加组件。您应该将它们全部删除,然后尝试逐个添加它们。我使用某个代码覆盖插件经历了同样的行为,现在无法记住哪一个。无论如何,试一试,看看你是否可以确定它是哪一个。然后你只需要找到一个替代的附加组件,你可以使用它。