【问题标题】:How to reduce Eclipse's memory usage?如何减少 Eclipse 的内存使用量?
【发布时间】:2009-09-29 06:03:22
【问题描述】:

Eclipse 3.4 的内存使用量已经达到顶峰,已经成为一个问题。

我加载了一个简单的 BlackBerry 项目,使用量飙升至近 400 MB,有时甚至更高。有什么办法可以降低它吗?

【问题讨论】:

  • 现在回想这个问题,我不得不说如果我能将我的 eclipse 内存使用量降低到 400MB,我会很高兴的。现在我正在努力将它降低到 1GB(如果你包含 Tomcat 的副本来实际运行我的项目,再加上另外 300MB...)。
  • 我正在写这篇来自未来(2018 年)的评论,而 Eclipse 在我当前的项目中占用了 10 GB。
  • 我刚从 2030 年回来,Eclipse 在加载项目之前占用了 5 TB。

标签: eclipse


【解决方案1】:

Eclipse 3.4 比以前的版本courtesy the spellchecker plug-in 消耗更多的内存。

您可以通过转到 Window -> Preferences -> General -> Editors -> Text Editors -> Spelling 并取消选中框标题“启用拼写检查”来关闭插件。

当然,提供的使用更大堆大小和更好的垃圾收集器的技巧也会对你有好处。

【讨论】:

  • 对我不起作用。仍然在 900-930MB。我的意思是 wtf 它可以这样做。
  • 很好的答案。 1 插件下来,大约 50 其他我从未听说过/从未使用过的去。 (提醒自己,开始使用 IntelliJ)
  • 2016 年仍然面临这个问题。我的意思是 1GB 的 Ram 空间被 eclipse 占用了。关闭拼写检查插件也无济于事。
  • 2017 年,我的 Eclipse 现在使用 1.7GB 的 RAM,几乎没有额外的插件。必须结束这种疯狂。
  • 这是非常有用的建议,谢谢。我一直在处理大型 LATEX / R 文档,其中包含大量文本并且取消选中启用拼写已大大减少了堆大小!
【解决方案2】:

检查General -> Show heap status 将启用此功能

在底部栏中。 这样,您可以随时通过单击垃圾桶手动运行垃圾收集器。这不是一个修复,更像是一种解决方法,但它有助于大量减少我的 RAM / CPU 使用率。

【讨论】:

  • 这帮助我确定分配给 eclipse 的 4GB RAM 实际上没有被使用,即使操作系统显示 4GB 正在使用中。我减少了分配给 eclipse 的 RAM 量,以帮助为其他应用程序释放 RAM。
  • 作为从eclipse派生的Sping Tool Suit所以这也适用于STS
【解决方案3】:

从 eclipse.ini 中删除 +UseG1GC 选项。我从here 读到它仅用于 6GB 堆内存。

【讨论】:

  • 是的,这对我有用。我用-XX:+UseSerialGC 替换了-XX:+useG1GC,内存问题消失了。听起来像是 G1GC 中的一个错误。
  • 切换到-XX:+UseSerialGC 剪切 > 300mb。竖起大拇指
  • 这是最好的答案,我猜。为我工作,日食感觉比以前更顺畅。只需确保从原始 eclipse.ini 文件进行备份。竖起大拇指
  • 通过改变这个从 700+MB 到 380MB。谢谢
【解决方案4】:

在 Eclipse Luna 4.4.1 中 试图减少我在 Eclipse 中的内存使用量。我设法将我的从 600mb 刮到 300mb。我做了以下事情:

  • 关闭了启动时激活但我没有使用的插件。 Windows > 首选项 > 常规 > 启动和关闭

  • 关闭了我当时没有从事的项目。

在这里找到提示/提示:http://blog.elijaa.org/2010/09/20/tricks-to-speed-up-eclipse-php-helios-pdt-2-2/

【讨论】:

    【解决方案5】:

    现代版本的 Eclipse 确实需要相当多的 RAM 才能完成它们的工作。但在任何现代机器上仍然应该运行得相当快。

    假设您有足够的物理内存(2GB 很好,除非您有许多其他进程正在运行,或者您正在使用 RAD),请参阅Eclipse's memory usage 上的这篇文章,了解有关调整设置的一些提示。两个最常见的罪魁祸首是 Xmx 和/或 MaxPermSize 设置得太低(Xmx 默认为 256M,MaxPermSize 默认为 64M)。

    您可以通过传递命令行参数或调整 Eclipse 安装位置中的 eclipse.ini 来修改这些值。

    你应该得到这样的结果:

    ...
    -vmargs
    -Xms128m
    -Xmx1024m 
    -XX:MaxPermSize=128m
    

    【讨论】:

    • MaxPermSize 不再存在
    【解决方案6】:

    虽然您可能可以修改配置、删除各种插件等,但购买更多内存可能更具成本效益。你目前有多少?我会认为内存不足 2GB 的开发机器不符合规范,我怀疑很多人会加倍...

    【讨论】:

    • 不能再同意了。 1GB 的 RAM 只需 20-30 美元。你的时间值多少钱?让一组插件在 Eclipse 中工作已经够辛苦了,而无需(可以说)不必要地摆弄它。
    • 我的最大容量为 2GB(这是一台旧笔记本电脑)。问题是,一旦加载了黑莓模拟器、Visual Studio(网络服务)和 Chrome(在网络上查找内容),笔记本电脑就会爬行。但 Eclipse 是迄今为止最大的罪犯。 3.3 或 3.2 版本还不错。
    • 完全不同意。正是出于这个原因,开发人员机器的规格应低于目标最终用户的机器至少 50%(CPU 和 RAM)。
    • @finnw:是什么让您认为开发人员机器的工作量与用户机器的工作量有什么相似之处?许多应用程序在资源方面不需要像 IDE 那样多的东西。您当然应该在低规格机器上测试您的应用程序,但这并不意味着在一台机器上开发它。事实上,您显然已经在假设一个客户端应用程序。如果我正在开发一个针对移动设备的网络应用程序,我是否也应该在手机上开发?
    • @Nate:这是最直接的问题,但在 Stack Overflow 上,查看问题 比查看问题 更有用。如果某人在 SQL 中连接值并忘记了某些引号,则 问题 的直接答案是添加引号,但 问题 的解决方案是参数化 SQL。如果 OP 担心 400MB,那么在我看来,开发人员机器普遍缺乏内存是更广泛的问题。
    【解决方案7】:

    我的 Eclipse 占用了超过 800MB 的常驻空间和 2GB 的虚拟空间(其中一部分可能被换掉了)。 Java 可能是一头猪,它一直在给 Java 带来坏消息。

    但是,有一点很多人不知道:增量垃圾收集器。 -Xincgc 副作用是它不时将内存交还给系统。 默认情况下,Java 只是不断地占用,当它不再需要内存时,它会为自己保留它。 incgc 是一种不同的策略,它可以更合理地假设内存可以交还给系统而不会遇到麻烦。 但是,这可能会影响性能。

    有很多垃圾收集设置。您还可以让多个线程处理 GC。并行 GC 就是这样做的。不确定那个人是否会恢复记忆,不要这么认为。

    【讨论】:

    • 以及如何更改 Eclipse 的垃圾收集器选项?
    • 情况发生了变化。现在 Java 8 中的默认 GC 是一个分代垃圾收集器,它也将内存交还给系统。你不想再用它来模拟了……
    • 在我的情况下,当实际使用量小于 0.5GB 时,java 8 很乐意保持超过 3GB,所以不幸的是我需要模拟它。
    【解决方案8】:

    如果 400 Mb 的 RAM 对您来说是个大问题,您可能想尝试另一个 IDE。 Eclipse 存储了很多 状态信息,其中一些或大部分您实际上并不需要。这是一种设计选择。

    现在,我在 Eclipse 和 QtCreator 中都打开了同一个项目:干净重建后,Eclipse 使用 156 Mb RAM,Qt Creator 对 66 Mb 感到满意。

    【讨论】:

      【解决方案9】:

      您可以在 Windows 7 上尝试 64 位版本的 Eclipse 和 64 位版本的 JDK。这些都导致我必须使用的第 3 方框架出现一些奇怪的问题。来自 Oracle 的 32 位 JRockit(现在免费)似乎更快,并且在内存上更好一点。这是我的 Eclipse.ini 设置:

      这是我的日食客栈

      -startup
      plugins/org.eclipse.equinox.launcher_1.1.1.R36x_v20101122_1400.jar
      --launcher.library
      plugins/org.eclipse.equinox.launcher.win32.win32.x86_1.1.2.R36x_v20101222
      -nosplash
      org.eclipse.platform
      --launcher.XXPermSize
      512m
      --launcher.XXMaxPermSize
      512m
      --launcher.defaultAction
      openFile
      -vm
      C:/Program Files (x86)/Java/jrockit-jdk1.6.0_31-R28.2.3-4.1.0/jre/bin
      -showsplash
      org.eclipse.platform
      --launcher.XXMaxPermSize
      256m
      --launcher.defaultAction
      openFile
      -vmargs
      -Xquickstart
      -XX:+AggressiveHeap
      -XX:+AggressiveOpts
      -XX:+UseParallelOldGC
      -XX:ParallelGCThreads=2
      -XX:ThreadPriorityPolicy=1
      -Xverify:none
      -Xms1100m
      -Xmx1100m
      

      我切换到 32 位 JRockit JDK,这对于 Eclipse 来说似乎要快一些。我关闭并且不安装超过我需要的。对于每种单独的应用程序开发类型(Android、J2EE、只是 Spring,...),我都有不同的 Eclipse 安装。硬盘空间便宜。然后我可以只拥有每个插件所需的插件。如果我不使用它们,我永远不会想要加载所有的 Android 工具。 STS 也适用于 Spring 的东西,我有一个只适用于 OpenShift Cloud 的工作。

      【讨论】:

      • 我有点困惑,因为你首先有--launcher.XXMaxPermSize 512m,然后是--launcher.XXMaxPermSize 256m(以及几个重复的行,即defaultAction,然后是nosplash和showsplash )。它是否使用找到的第一个配置?
      • 那里不应该有第二个。我再次检查并没有在我目前的。此外,如果您使用的是 JDK 8 不同的参数
      【解决方案10】:

      尝试禁用您的 Eclipse 插件。当我打开 saros 插件时,Eclipse 占用了我一半的内存。

      【讨论】:

        猜你喜欢
        • 2010-09-10
        • 2018-07-12
        • 2021-12-12
        • 1970-01-01
        • 2011-12-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多