如何减少Eclipse Ganymede的内存使用?

时间:2008-09-18 16:44:53

标签: java eclipse memory ide

我使用最近的Ganymede Eclipse版本,特别是Java EE和Web开发人员的发行版。我已经安装了一些额外的插件(例如Subclipse,Spring,FindBugs)并删除了所有的Mylyn插件。

我没有在Eclipse中做任何特别重的事情,例如启动应用服务器或连接到数据库,但出于某种原因,经过几个小时的使用后,我发现Eclipse使用的是接近500MB的内存。

有人知道Eclipse为什么会使用这么多内存(漏洞?),更重要的是,如果有什么我可以做些什么来改善它?

13 个答案:

答案 0 :(得分:34)

我并不特别了解Eclipse,我使用的IntelliJ也会受到内存增长的影响(无论你是否正在积极使用它!)。无论如何,在IntelliJ中,我无法消除这个问题,但我确实通过使用运行时VM选项减慢了内存增长。您可以尝试在Eclipse中重置这些内容,看看它们是否有所作为。

您可以在eclipse文件夹中的eclipse.ini文件中编辑VM选项。

我发现(在IntelliJ中)垃圾收集器设置对内存增长的速度影响最大。

我的设置是:

-Xms128m
-Xmx512m
-XX:MaxPermSize=120m
-XX:MaxGCPauseMillis=10
-XX:MaxHeapFreeRatio=70
-XX:+UseConcMarkSweepGC
-XX:+CMSIncrementalMode
-XX:+CMSIncrementalPacing

(有关各个设置的说明,请参阅http://piotrga.wordpress.com/2006/12/12/intellij-and-garbage-collection/)。正如您所看到的,我更关心的是避免在编辑期间长时间暂停而不是实际内存使用,但您可以将其作为一个开始。

答案 1 :(得分:3)

在内存中运行时,Ganymede Java EE插件绝对是巨大的。此外,我在FindBugs及其长期编码会话中的可靠性方面经验不佳。

如果你不能没有这些插件,那么你唯一的办法是开始关闭项目。如果限制工作区中 open 项目的数量,编译器(和FindBugs)将不用担心,并且内存使用量将大幅下降。

我通常按客户分割我的工作区,然后只保留每个工作区内的最小项目。请注意,如果您有一个特别大的项目(特别是那些通过WST检查了大量文件的项目),这不仅会扼杀您的记忆,还会在编译时导致响应性显着停顿。

答案 2 :(得分:3)

我不认为JVM会进行大量的垃圾收集,除非它必须(即它已达到极限)。因此它抓取它可以获得的所有内存,可能达到eclipse.ini中设置的限制(-Xmx参数,此处设置为512MiB)。

您可以通过选中“首选项” - >来获得当前堆状态的直观表示。 '一般' - > '显示堆状态'。它会在状态栏中创建一个小规格,它还有一个“垃圾桶”按钮,可用于触发手动垃圾收集。

答案 3 :(得分:3)

仅供参考,

  • 您可以添加

    -Dcom.sun.management.jmxremote

到eclise.ini文件,启动eclipse,然后通过jdk安装中的'jconsole.exe'监视其内存使用情况。

C:\[jdk1.6.0_0x path]\bin\jconsole.exe

选择'Connection / New connection /'eclipse'来监控eclipse使用的内存

  • 总是使用最新的jvm来启动你的eclipse(这并不妨碍你使用任何其他的jfk在eclipse中编译你的项目)

答案 4 :(得分:2)

Eclipse本身非常臃肿,你添加的插件越多,只会加剧这种情况。它仍然是我最喜欢的IDE,因为它当然不缺乏功能,但如果你正在寻找一个轻量级IDE,那么我建议放弃Eclipse;如果让它运行一段时间,那么运行半个内存是很正常的。

答案 5 :(得分:2)

Eclipse是一个非常臃肿的IDE。您可以通过在Project - >下转动自动项目构建来最小化它。自动构建。关闭你目前没有工作的任何开放项目也可以帮到它。

答案 6 :(得分:2)

我称之为膨胀,但不是漏水。 (如果它是泄漏的,它会攀爬并攀爬直到坠毁的东西。)正如其他人所说的,记忆 便宜! 对我来说这似乎是一个简单的决定:花一点点由于没有内存预算来运行Eclipse @ 500MB,因此需要更多内存而不会降低工作效率。

总结修辞问题:更有价值的是:

  1. 使用您所知道的IDE所需的IDE或
  2. 所获得的效率
  3. 在一些记忆上花费50-200美元?

答案 7 :(得分:1)

RAM相对便宜(并不是说这是一个糟糕的记忆管理的借口)。未使用的内存本质上是WASTED内存。如果您达到限制并且IDE是问题,请考虑减少多任务处理,调整内存需求或购买更多内容。如果那是你的面包和黄油IDE,我不会贬低Eclipse。

答案 8 :(得分:1)

不要抱怨Eclipse需要多少内存,而是继续分析问题所在。我可能只是一个插件。

点击此处的博客: "analyzing memory consumption of eclipse"

此致 马库斯

答案 9 :(得分:1)

我遇到了基于java的程序内存消耗问题。我发现它可能与选择的jvm有关(在我的例子中)。尝试使用-client开关运行eclipse。

在某些操作系统(我相信大多数Linux发行版)中,默认选项是server vm,在使用gui运行应用程序时会占用更多内存。

在我的情况下,初始内存占用量从300MB下降到80MB。

对不起我糟糕的英语。我希望我能帮忙。

所有问候 Arkadiusz Jamrocha

答案 10 :(得分:0)

好吧,您没有指定这种情况发生在哪个平台上。如果您使用的是Windows XP,Vista,Linux,OS X,......内存管理可能会有所不同。

通常,在我的计算机上(带有1Gb Ram的WinXP),Eclipse占用的内容很少超过200Mb,取决于已打开项目的大小,加载的插件和正在进行的操作。

答案 11 :(得分:0)

我通常给Eclipse 512 MB的RAM(使用JVM的-Xmx选项),我对Ganymede没有任何内存问题。几个月前我升级到两GB RAM,我真的可以推荐它。它产生了巨大的差异。

答案 12 :(得分:-1)

Eclipse通常会在内存中保留大量元数据以允许各种IDE体操。

我发现Eclipse的默认配置适用于大多数用途,包括一个限制(由JVM明确地或隐含地给出)可以消耗多少内存,而Eclipse将保持在其中。

您是否有任何特别关注内存使用的原因?