Eclipse JUnit插件测试在Windows上重新执行Test Suite非常慢

时间:2010-05-05 01:11:21

标签: windows performance eclipse junit eclipse-plugin

我在Eclipse中运行一个大型JUnit插件测试套件时遇到了一个奇怪而又有压力的问题。当我尝试重新运行刚刚执行的JUnit插件套件时,Eclipse会在最终唤醒并启动之前挂起很长一段时间。有时可能需要5分钟,并随着套件的大小而增加。在视觉上,它显示为GC清理,除了我有足够的GC空间可用(400 MB可自由分配)。

必须删除的工作区大小远低于1 GB,并且文件不会太多 - 绝对少于20,000。

当我等待新的跑步开始时,我决定手动杀死explorer.exe以查看它是否有任何效果。令人惊讶的是,Eclipse立即脱离了冻结并正常运行。

这让我觉得Windows在某种程度上干扰了这些工作区文件的删除。但它们并没有被放入回收站。工作区位于C:,我认为它超出了任何工作空间/域的范围。有什么想法吗?

编辑:我使用的是Eclipse 3.5.2,JRE 1.6.02,JUnit 3.没什么不寻常的。我很确定这不是内存泄漏;它从未因OOM异常而崩溃(如果确实如此,我可以使用MemoryAnalyzer轻松分析它。)

在冻结时进行进一步调查,确实是因为删除了文件。工作区的初始大小约为20,000个文件/ 5000个目录,可用的大小为100 MB。我可以看到被删除的文件,最终工作区是空的,Eclipse没有冻结。

我已就此问题提交了Eclipse Bug 311814

1 个答案:

答案 0 :(得分:1)

您可以尝试使用generating a Head Dump来获取Memory Analyzeranalyze等模块。

这样,您可以看到哪种线程正在等待什么,例如this bug(可能是fork issue)。