![Eclipse 使用大量系统内存](https://linux22.com/image/1301456/Eclipse%20%E4%BD%BF%E7%94%A8%E5%A4%A7%E9%87%8F%E7%B3%BB%E7%BB%9F%E5%86%85%E5%AD%98.png)
我有一个复杂的工作区,工作区目录中有许多 eclipse 项目。工作区目录的总大小刚好超过 1GB,其中来自 subversion 的 .svn 目录高达 0.4GB,eclipse .metadata 目录只有 0.16GB,项目本身占据了剩余的空间。当我打开 Eclipse 进行一些编辑时,内存使用量非常大,大约有 1.5GB。现在,有趣的部分来了。我启动一个 JConsole 实例来查看 JVM 及其 800MB。我强制进行垃圾收集并将其降至 400MB。但是,当我在 Windows 任务管理器中查看系统内存使用情况时,eclipse 进程仍在使用 1.5GB。现在,这意味着大部分内存是系统内存,而不是来自 JVM。什么时候会发生这种情况?在几种情况下都会发生。例如,应用程序可能正在使用分配内存的本机库。但问题是,我该如何彻底解决这个问题?我尝试使用系统内部工具(例如 RAMMAP、ProcessExplorer 和 VMMAP)来查看是否能够找出 eclipse 到底对系统造成了怎样的破坏以及如何停止它?
有什么想法吗?有人可能会说这种内存使用量是预期的。如果我的项目总计 400Meg。Eclipse 显然会消耗内存。但是,有趣的是,如果我删除所有这些项目,则没有任何区别。
注意:我使用的插件是标准 m2e、pmd 和 subclipe。Eclipse 版本是 indigo。JDK 1.6。
PS:抱歉,问题太长,希望我已经解释清楚了。
答案1
删除工作空间中所有项目的自动构建功能。如果您的项目是由 ant 构建的,请将其更改为使用 ant builder,而不是默认的 java builder。如果您的项目基于 maven,请使用 maven 进行构建。
基本上,eclipse 会监控您的所有项目,并且每当您保存更改时,它都会尝试编译和构建该项目。
如果问题没有解决,请关闭所有未在进行的项目,只保留正在处理的模块/项目!