【问题标题】:Eclipse running out of memory and running slowEclipse 内存不足,运行缓慢
【发布时间】: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,并保持简单。也许我找错地方了(我没有看到启用/禁用它的地方)

标签: java eclipse memory


【解决方案1】:

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

“每当您为 Mozilla 源代码树创建新工作区时,您 应该确保在工作区中关闭以下两个设置 首选项(窗口 > 首选项,或 Eclipse > 首选项)之前 在该工作区中创建一个项目:
- 在“常规 > 工作区”中,禁用“自动构建”
- 在“C/C++ > Indexer”中,禁用“自动更新索引”
https://developer.mozilla.org/en-US/docs/Eclipse_CDT

我的问题消失了。

【讨论】:

    【解决方案2】:

    这可能是某个附加组件。您应该将它们全部删除并尝试将它们一一添加。我在使用某个代码覆盖率插件时遇到过同样的行为,现在不记得是哪一个了。不管怎样,试一试,看看你能不能确定它是哪一个。然后你只需要为那个找到一些替代的附加组件,你可以使用它。

    【讨论】:

    • 这是最可能的解决方案。当 Eclipse 内存变得疯狂时,通常是附加组件。您有两种解决方案,增加可用内存,如果您正在运行许多附加组件并且它们都不会在内存上过度滥用,那么这是有效的。斯科特提到的另一个解决方案是开始卸载并重新安装以隔离问题。如果你显着增加了内存(512、1024)并且它仍然用完但需要更长的时间,这听起来真的像一个泄漏的附加组件。
    【解决方案3】:

    我多年来一直忍受这个问题。尝试了所有可能的 java 标志组合、删除的插件等。它没有帮助。它可能对特定项目有所帮助,但是当您使用大量使用宏或模板的某个 cpp 文件时,它会耗尽内存。

    您可以关闭索引或切换到另一个 IDE。为什么?因为 Eclipse CDT 至少从 2010 年开始就忽略了这一点。

    【讨论】:

      猜你喜欢
      • 2015-03-11
      • 1970-01-01
      • 2021-06-13
      • 2013-10-23
      • 2016-05-17
      • 2014-05-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多