关于java:如何减少Eclipse Ganymede的内存使用量?

关于java:如何减少Eclipse Ganymede的内存使用量?

How can I reduce Eclipse Ganymede's memory use?

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

我在Eclipse中没有做任何特别繁琐的事情,例如启动应用程序服务器或连接数据库,但是由于某些原因,经过几个小时的使用,我发现Eclipse正在使用接近500MB的内存。 >

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


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

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

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

我的设置是:

1
2
3
4
5
6
7
8
-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/)。如您所见,与实际内存使用相比,我更关心的是避免在编辑过程中长时间停顿,但是您可以以此为起点。


仅供参考,

  • 您可以添加

    -Dcom.sun.management.jmxremote

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

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

选择'连接/新建连接/'eclipse'以监视eclipse使用的内存

  • 始终使用最新的jvm启动eclipse(这不会阻止您使用任何其他jfk在eclipse中编译项目)

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

通过选择"首选项"->"常规"->"显示堆状态",可以直观地看到当前堆状态。它将在状态栏中创建一个小规,其中还有一个"垃圾箱"按钮,可用于触发手动垃圾收集。


Ganymede Java EE插件在内存中运行时绝对庞大。另外,我在使用FindBugs及其在长时间的编码过程中的可靠性方面也遇到了不好的经验。

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

我通常按客户划分工作区,然后仅在每个工作区中打开最少的项目。请注意,如果您有一个特别大的项目(尤其是那些带有WST检查的很多文件的项目),那么这不仅会占用您的内存,还会在编译时引起明显的响应暂停。


我会称它为ated肿,但不会漏气。 (如果泄漏,它将爬上去直到有东西撞坏。)正如其他人所说,内存很便宜!对我来说,这似乎是一个简单的决定:花一点点钱在更多的内存上而不是提高生产力,因为您没有足够的内存预算来运行Eclipse @ 500MB。

概括的反问:什么更有价值:

  • 通过将所需的IDE与所需的插件一起使用可以提高工作效率,或者
  • 在某些内存上花费$ 50-200?

  • Eclipse是一个非常庞大的IDE。您可以通过在项目->自动构建下打开自动项目构建来最小化它。关闭任何当前不在打开的项目也可以提供帮助。


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


    我对基于Java的程序的内存消耗有疑问。我发现它可能与所选的jvm有关(以我为例)。尝试使用-client开关运行Eclipse。

    在某些操作系统(我相信大多数Linux发行版)中,默认选项是服务器vm,当使用gui运行应用程序时,它将消耗明显更多的内存。

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

    对不起,我的英语不好。希望我能帮上忙。

    所有问候
    Arkadiusz Jamrocha


    与其抱怨Eclipse需要多少内存,不如继续分析问题出在哪里。我可能只是一个插件。

    在此处查看博客:
    "分析Eclipse的内存消耗"

    关于,
    马库斯


    RAM相对便宜(这不是内存管理不善的借口)。未使用的内存本质上是WASTED内存。如果您即将达到极限,并且IDE成为问题,请考虑减少多任务处理,调整内存需求或购买更多产品。如果那是您的首创IDE,我不会削弱Eclipse。


    我通常给Eclipse 512 MB的RAM(使用JVM的-Xmx选项),并且Ganymede没有任何内存问题。几个月前,我已升级到两个GB的RAM,我真的可以推荐它。这有很大的不同。


    好吧,您没有指定在哪个平台上发生这种情况。如果您使用的是Windows XP,Vista,Linux,OS X,...

    ,则内存管理可能会有所不同。

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


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

    我发现Eclipse的默认配置在大多数情况下都能很好地工作,并且包括可以消耗多少内存的限制(由JVM显式或隐式指定),并且Eclipse将保留在其中。

    您是否有任何特定原因担心内存使用情况?


    推荐阅读

      linux清理内存命令行?

      linux清理内存命令行?,策略,数据,系统,名称,不了,管理,情况,工作,一致,时间,l

      linux分析内存命令?

      linux分析内存命令?,情况,系统,信息,分析,命令,地址,内存,工具,下来,数据,lin

      linux的内存查看命令?

      linux的内存查看命令?,系统,情况,信息,数据,工具,命令,内存,第一,环境,电脑,

      linux命令行查内存?

      linux命令行查内存?,系统,情况,信息,状态,工具,内存,电脑,分析,数据,命令,怎

      linux看剩余内存命令?

      linux看剩余内存命令?,系统,情况,工具,信息,分析,状态,实时,命令,内存,总量,L

      查询linux内存命令?

      查询linux内存命令?,系统,情况,信息,工具,电脑,状态,命令,内存,发行,总量,查

      linux查内存命令6?

      linux查内存命令6?,情况,系统,信息,工具,数据,内存,命令,单位,环境,方法,查看

      linux修改内存命令?

      linux修改内存命令?,系统,信息,标准,工具,数据,在线,内存,命令,分区,大小,Lin

      linux历史命令内存?

      linux历史命令内存?,系统,情况,信息,数据,命令,内存,文件,磁盘,历史,内容,Lin

      linux怎么看内存命令?

      linux怎么看内存命令?,系统,情况,信息,命令,内存,工具,发行,数据,表示,内容,l

      linux历史命令内存?

      linux历史命令内存?,系统,情况,信息,数据,命令,内存,文件,磁盘,历史,内容,Lin

      linux查内存空间命令?

      linux查内存空间命令?,系统,情况,信息,数据,内存,工具,命令,表示,方法,内容,L

      linux中看栈内存命令?

      linux中看栈内存命令?,系统,情况,信息,地址,数据,分析,命令,内存,工具,环境,l

      linux活动内存命令?

      linux活动内存命令?,系统,情况,信息,命令,地方,地址,电脑,工具,位置,单位,详

      linux的查看内存命令?

      linux的查看内存命令?,情况,系统,信息,电脑,状态,工具,内存,命令,数据,总量,L

      linux下内存调整命令?

      linux下内存调整命令?,系统,情况,地址,工具,总量,总额,管理,内存,机制,内核,

      linux内核发行版命令?

      linux内核发行版命令?,发行,系统,地址,软件,设备,信息,内核,版本,工具,公司,l

      linux内存大小命令?

      linux内存大小命令?,系统,情况,电脑,信息,工具,状态,命令,内存,环境,分析,Lin

      linux内存命令大全?

      linux内存命令大全?,地址,系统,信息,工作,命令,情况,代码,分析,数据,工具,[Li

      linux命令监控内存?

      linux命令监控内存?,情况,系统,工具,信息,环境,分析,命令,工作,实时,电脑,lin