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

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

我不会在Eclipse中做任何特别重的任务,例如启动应用服务器或连接到数据库,但出于某种原因,在几个小时的使用后,我看到Eclipse正在使用接近500MB的内存。

有人知道为什么Eclipse使用如此多的内存(泄漏?),更重要的是,如果有什么我可以做的,以改善这一点?


我不知道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/)。 正如你所看到的,我更关心在编辑过程中避免长时间的停顿,而不是真正的内存使用,但是你可以用它作为开始。


我不认为JVM做了很多垃圾收集,除非它必须(即它已经到了极限)。 因此,它捕获它可以获得的所有内存,可能达到eclipse.ini中设置的限制(-Xmx参数,在此设置为512MiB)。

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


仅供参考,

  • 你可以加

    -Dcom.sun.management.jmxremote

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

    C:[jdk1.6.0_0x path]binjconsole.exe
    

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

  • 总是使用最新的jvm来启动你的eclipse(这并不妨碍你使用任何其他的jfk在eclipse中编译你的项目)
  • 链接地址: http://www.djcxy.com/p/90555.html

    上一篇: How can I reduce Eclipse Ganymede's memory use?

    下一篇: Eclipse IDE speed sluggish on Snow Leopard Macbook