Eclipse 3.5.1使用大量内存

时间:2009-12-18 04:34:23

标签: java eclipse eclipse-3.5.1

我已迁移到Eclipse 3.5.1,并观察到在进行干净构建时需要560 MB。使用后内存不会被收集。它保持这样。

对此有任何解决方案吗?

JVM:jdk1.6.0_17 Windows XP, 2GM RAM

下面是我的eclipse.ini

-showlocation
-showsplash
org.eclipse.platform
--launcher.XXMaxPermSize
384m
-startup
plugins/org.eclipse.equinox.launcher_1.0.201.R35x_v20090715.jar
--launcher.library
plugins/org.eclipse.equinox.launcher.win32.win32.x86_1.0.200.v20090519
-vm
C:/Program Files/Java/jre6/bin/client/jvm.dll
-vmargs
-Dosgi.requiredJavaVersion=1.5
-Xms128m
-Xmx384m
-Xss4m
-XX:PermSize=128m
-XX:MaxPermSize=384m
-XX:CompileThreshold=5
-XX:MaxGCPauseMillis=10
-XX:MaxHeapFreeRatio=70
-XX:+UseConcMarkSweepGC
-XX:+CMSIncrementalMode
-XX:+CMSIncrementalPacing
-Dcom.sun.management.jmxremote
-Dorg.eclipse.equinox.p2.reconciler.dropins.directory=C:/jaydeep/Ericsson/eclipse_galileo/eclipse/dropins

Jaydeep。

6 个答案:

答案 0 :(得分:5)

我花了很多时间研究与Eclipse相关的内存问题,特别是Eclipse 3.2和臭名昭着的PermGen问题。

可能会产生影响的一些事情:

1)删除用于初始堆大小的内存量:-Xms40m而不是-Xms128m。 2)不要设置最小PermGen大小:删除-XX:PermSize = 128m

1& 2将减少您需要的初始空间量。

3)不要启动帮助系统 - 加载文档插件会占用大量内存,而这些内存永远不会被淘汰。 4)使用Preferences / General / Startup和Shutdown页面取消选择Eclipse启动时不需要的插件。

3& 4将使内存使用量过早增长。

5)如果您不需要Max PermGen和Max Heap,请考虑将它们设置得更低,直到/除非您有错误/崩溃反映其中任何一个。用完PermGen通常会导致JVM崩溃并将日志文件转储到配置文件夹中,而堆错误将报告给正常的.log文件。

解决了这些问题后,您可能仍会看到Windows内存随着时间的推移而不会被释放,尽管JVM可能无法在任何给定时间使用它可用的所有内容。任务管理器显示JVM可以使用多少,而Java内存通常可以通过jconsole(随JDK一起分发)进行监视,并且通常会更少。

希望有所帮助。

答案 1 :(得分:3)

一段时间后,我在构建一个非常大的项目时遇到内存使用问题。我无法明确地证明它,但我得出的结论是Eclipse使用了大量空间来表示编译警告。尝试关闭所有Java编译器警告并进行重建,看看是否有任何区别。

答案 2 :(得分:1)

AFAIK java虚拟机一旦增加就不会放弃它的保留堆大小。我在你的参数中看到,你的PermSize有可能是384Mb,你的堆大小高达384Mb,这意味着你的虚拟机可以增长到768Mb - 并保持在那里(我不是100%确定是否添加了堆栈空间那个)。

我担心日食只是一个怪物。如果你需要让它变轻,可以尝试删除你不需要的插件。

如果你担心“内存泄漏”,你可以通过使用“jstat”确切地看到不同内部内存堆正在使用多少空间。

答案 3 :(得分:0)

这听起来不像是过多的记忆。你正在建设的项目有多大?

此外,内存可以在JVM中释放(即,它可用于其他Java进程)但在JVM(Eclipse)关闭之前不会返回到操作系统。

答案 4 :(得分:0)

您是否确定堆没有被垃圾收集?尝试在状态栏中启用“堆状态”(在首选项中启用它)并观察实际使用的内存是否已经关闭(您可以单击窗口小部件来设置参考标记)。

Eclipse总体上喜欢吃内存,但有些插件比其他插件更容易耗费内存。如果您已经安装了任何扩展程序,请尝试逐个卸载它们以查看是否有吸烟枪。

我目前的一个项目在构建期间吃掉了1.6 GB以上。这只是我们不得不忍受的事情,真的......

答案 5 :(得分:0)

根据我的实验,在ini中设置的vmargs的所有选项只能播放一次 - 在创建新工作区时。如果要更改现有工作空间中的选项,请使用run / debug配置。 ini中的vmargs将不再被阅读。