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

Dón*_*nal 34 java eclipse memory ide

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

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

有谁知道Eclipse为什么会使用这么多内存(漏洞?),更重要的是,如果我能做些什么来改进这个?

GKe*_*lly 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
Run Code Online (Sandbox Code Playgroud)

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

  • 如果要使用新的G1C1垃圾回收,则需要删除-XX:+ CMSIncrementalMode和-XX:+ CMSIncrementalPacing选项,因此最终得到-Xms128m -Xmx512m -XX:+ UnlockExperimentalVMOptions -XX:+ UseG1GC -XX :MaxPermSize = 120m -XX:MaxGCPauseMillis = 10 -XX:MaxHeapFreeRatio = 70 (4认同)
  • 这比我预期的更大(甚至在较新的Eclipse版本中). (2认同)

Mag*_*sol 2

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

  • 是的,但是你不能只是在工作时用手中的 RAM 进行展示,然后将其塞进计算机中。 (6认同)