我们的一个应用程序中包含一个包含所有代码的eclipse项目。我认为这是一个相当数量的代码 - 不是一个小项目,但也不是一个巨大的项目。我对它进行了一次小检查并得到了:
发现< 4245>代码文件
总计< 421557>代码行
此检查包含非空或只包含{
或}
的所有代码行。
所以它不是一个庞大的项目 - 但是,.project
定义了很多链接来掩盖真实的目录结构,为Package Explorer
创建一个不同的视图 - 所以项目会更有意义。< / p>
问题是eclipse
在某些方面工作得很慢
例子:
jadclipse
或JDEclipse
进行反编译可能需要1分钟 - 导致eclipse
在标题上显示可爱的(无响应)后缀 - 酒吧。从eclipse
外部反编译的相同代码只需不到一秒钟。eclipse
似乎没有做任何重要事情。为什么会出现这种情况以及是否可能是“复杂”项目结构的结果?
使用eclipse 3.6
,但未安装多个插件。
修改
使用resmon
最终向我展示了问题。我注意到eclipse一直试图连接到网络共享 - 它没有占用太多的CPU或IO,但它仍然存在。
在检查.classpath
文件时,我注意到了这一点:
<classpathentry kind="lib" path="build_class" sourcepath="some share using samba ...">
我们引用的份额甚至不是正确的路径,但这可能会导致每项活动产生大量开销。
删除sourcepath
附件并将其保留为:
<classpathentry kind="lib" path="build_class">
立即解决问题。由于我们以任何方式使用反编译器插件,因此我们没有受到此更改的伤害。
答案 0 :(得分:0)
这是典型的一个或多个资源瓶颈的情况。
您需要使用操作系统工具调查Eclipse正在等待的内容(任务管理器和perfmon非常适合Windows),如果这无助于在Oracle 6 JDK中使用jvisualvm调查Eclipse本身。
您很可能会发现系统正在等待底层硬盘。这有几个原因,一些是:
如果是这种情况,请获取更多内存。
如果底层系统没问题,但Eclipse本身很慢(但其他Java程序运行正常),那么请查看jvisualvm内存使用情况随时间的变化情况,以及当你有多个频繁的垃圾收集时需要等待,您可能需要为JVM分配更多内存。这是在eclipse.ini文件中完成的。