Eclipse JUnit Plugin Test очень медленно для повторного запуска Test Suite в Windows - PullRequest
1 голос
/ 05 мая 2010

У меня странная проблема с запуском большого набора тестов JUnit Plugin в Eclipse. Когда я пытаюсь перезапустить набор плагинов JUnit, который только что был запущен, Eclipse зависает довольно долго, прежде чем он в конечном итоге просыпается и запускается. Иногда это может занять до 5 минут и увеличивается в зависимости от размера люкса. Визуально это выглядит как очистка GC, за исключением того, что у меня достаточно свободного пространства GC (400 МБ свободно выделено).

Размер рабочей области, которая должна быть удалена, не превышает 1 ГБ, и файлов не слишком много - определенно менее 20000.

Пока я ждал начала нового запуска, я решил вручную убить explorer.exe, чтобы посмотреть, будет ли он иметь какой-либо эффект. Удивительно, но Eclipse мгновенно выпал из заморозка и побежал как обычно.

Это заставляет меня думать, что Windows каким-то образом препятствует удалению этих файлов рабочей области. Они не попадают в корзину, хотя. Рабочая область находится в C:, что, я думаю, выходит за пределы диапазона рабочей области / домена. Есть идеи?

Редактировать: Я использую Eclipse 3.5.2, JRE 1.6.02, JUnit 3. Ничего необычного. Я уверен, что это не утечка памяти; он никогда не падал с исключением OOM (если бы это произошло, я мог бы легко проанализировать его с помощью MemoryAnalyzer).

После дальнейшего расследования, пока оно зависало, действительно, это было связано с удалением файлов. Первоначальный размер рабочей области составлял около 20 000 файлов / 5000 каталогов и жалкие 100 МБ. Я мог наблюдать за удалением файлов, и в итоге рабочее пространство стало пустым, и Eclipse не замерзла.

Я отправил Eclipse Bug 311814 об этой проблеме.

1 Ответ

1 голос
/ 05 мая 2010

Вы можете попробовать и создать дамп головы для такого модуля, как Анализатор памяти до Анализ .

Таким образом, вы могли видеть, какой поток чего ожидает, как в этой ошибке (это может быть проблема с форком ).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...