2012-07-02 2 views
2

Мы разрабатываем наше веб-приложение с использованием JAVA GWT-P framework (версия 2.4). Мы используем Eclipse (версия 3.7) Indigo в качестве графического интерфейса разработки. Хотя мы отлаживаем приложение, затмение повсеместно повсеместно и неожиданно становится случайным.Eclipse получает Hang при отладке приложения GWT

И это не происходит только в части программы. В любое время, когда мы отлаживаем, Eclipse зависает в другом модуле.

Для решения этой проблемы мы попытались использовать различные операционные системы, такие как Windows XP (разработка gui: Eclipse версии 3.7 Indigo), версия Fedora 16 (с разработкой gui: версия Eclipse Helios Service Release 2), Cent OS (с разработкой gui: версия Eclipse Helios Service Release 2). Но не повезло.

Может ли кто-нибудь помочь мне решить, какая ОС, а также затмение или версия должны использовать, поэтому может решить проблему подвески?

+0

У меня нет проблем с этой конфигурацией - Windows 7 64 бит (SP 1), 4 ГБ оперативной памяти, Core i5, Java 7 (1.7.0_02), Eclipse Galileo (сборка 20100218-1602), GWT SDK 2.4 , Плагин Google для Eclipse 3.5, GWT Designer 2.4.2, Window Builder 1.2.0. – sreehari

+0

попробуйте протестировать ваше аппаратное обеспечение памяти. – Arcadien

ответ

1

Используйте машину с 8 ГБ оперативной памяти, четырехъядерным ядром для разработки GWT. Все, что меньше, было бы катастрофическим и непроизводительным.

Идеально 8 ядро, 12 ГБ.

  • Увеличьте свой затмение jvm vm heap size max при запуске. По умолчанию запуск eclipse - это 256M или 512M. Он должен быть не менее 768M. Я пробовал 1024M, который сделал лишь незначительную разницу выше 768M. Я нашел, что 900M, кажется, больше всего будет использоваться в моих случаях.

  • Возможно, вам придется увеличить распределение памяти в пермг. Я думаю, пространство перменца используется для хранения определения класса и никогда не сбор мусора. Я полагаю, что, когда мое затмение вешало бесконечно, было, когда больше не было пространства пергмена для хранения нового класса defn.

Мне никогда не приходилось переопределять распределение стеков для затмения.

Вы можете найти google, чтобы узнать аргументы запуска jvm, чтобы определить распределение памяти. например -Xmx и т. Д.

  • Первоначально разрабатывайте только для одного браузера. Решите между использованием FF или Chrome в качестве браузера вашего браузера. Затем настройте свою точку входа gwt.xml на , чтобы установить свойство user-agent для этого браузера. Google on gwt установлен пользовательский агент свойства. Компиляция только для одного браузера, я нашел, ускоряет сборку.

  • Не храните ваши проекты, исходные файлы, ресурсы или библиотеки , к которым обращается компилятор в сетевом или USB-накопителе. Все ваши компилируемые/включенные ресурсы должны быть на вашем локальном диске.

Попробуйте использовать maven или какой-либо другой инструмент для управления зависимостями, чтобы вам не приходилось обращаться к вашим банкам или зависимым проектам по сети.

  • Не, никогда, пусть ваша стратегия развития катиться вниз по склону от в зависимости от зависимостей живого проекта. Наличие рабочего пространства с 50 или более проектами является катастрофой и означает команду разработчиков в условиях кризиса. Компульсивная и постоянная компиляция, сканирование проектов на Eclipse background берут огромную нагрузку на производительность затмения.

  • Попробуйте отключить как можно большую проверку. например, отключить html и проверку javascript.

Если у вас есть огромное количество побочных проектов сервера ... Вам нужно повторно архитектор стратегия развития группироваться свои 50 - 100 проектов в пакеты проектов, так что каждый пакет проекта имеет не более 20 компилируемых/проверяемых членов проекта (в идеале менее 5 проектов). Каждый пакет заморожен версиями и упакован как банки. Используйте только банки для зависимостей разработки.

Ваши программисты должны научиться не стремиться работать в рабочем пространстве с 200 проектами. Улучшения зарезервированы для bugzillas каждого пакета проекта. Наличие 200 рабочих мест проекта - плохое управление проектами. Это отвлекает время программистов от времени, когда время затмения замедляется.

  • Имейте достаточно временного пространства (или для Windows достаточно свободного места на ). Я понял, что недостаточное дисковое пространство для буферизации/кэширования компилятора вызвало замедление и зависания. Имея , пространство простоя 5G является минимальным - чем веснее, тем лучше, чем , исключить необходимость очистки мусора или поиска файлов для удаления или очистить генерируемые временными файлами компилятора GWT. Пустое пространство 5G по-прежнему очень неудобно.

AFAI испытал, ни окна 7/vista, ни linux не достигли большой разницы в производительности, за исключением того, что в Windows Eclipse запускается намного медленнее.

  • Поэтому, если вы знаете, как настроить ваш антивирус, может быть, вы должны сказать антивирусное программное обеспечение, чтобы пропустить сканирование рабочей области и проекта папки.

  • Если у вас нет 8-ядерного 12-гигабайтного компьютера, вы должны отключить большинство окон aero, trasparency. Но вам нужно сохранить компоновку окон (иначе вы бы уничтожили свое зрение, глядя на плохие шрифты).

+1

Не многие люди могут позволить себе 8-ядерную 12-гигабайтную машину для разработки. Для производственного сервера это нормально. Я делаю GWT на затмении с помощью только 4 ГБ ОЗУ 64-битной Windows 7. – sreehari

+0

У меня есть core2 duoE4600 с 4G. Он работает, но я прекратил использование windowbuilder. Довольно непригодный для использования в Windows XP, я переключился на Ubuntu, который намного эффективнее с более старой конфигурацией. – Arcadien

+0

@sreehari Я согласен с тобой. Поскольку не многие люди могут позволить себе 8-ядерный 12-гигабайтный компьютер для разработки. Мы можем попробовать с 4-гигабайтной оперативной 64-битной машиной и проверим разницу. –

1

ПРОБЛЕМА

У меня есть проект GWT, который работал отлично на моей старой машине Core2. Когда я недавно получил новый ядро ​​i7, 8 ГБ (версия для разработчиков Dell XPS Ubuntu), я обнаружил, что Eclipse зависает ОЧЕНЬ OFTEN (около 90% загрузок при запуске), когда я пытаюсь начать отладку, щелкнув ссылку браузера в разделе «Разработка Режим "затмение. Там ДОЛЖЕН быть ошибка синхронизации потоков (deadlock), которая может произойти только тогда, когда «время отличается» от обычных тестовых случаев. Тот факт, что это тайный тупик, является причиной того, что он кажется «случайным» и еще не обнаружен и исправлен. У меня есть все ПОСЛЕДНИЕ GWT в то время, когда я пишу это, и последнее Eclipse и т. Д.

обходной путь:

К счастью, я обнаружил, что если я скопировать эту ссылку и вставьте ее в уже начал экземпляр Firefox (вне затмения), то там никогда не бывает похмелья. Я на 100% уверен, что это не проблема в моем коде. Я на 95% уверен, что это происходит в GWT. Поэтому просто не нажимайте ссылку «Режим разработки», и все будет в порядке. Надеюсь, что кто-то помог с этим сообщением.

+0

У вас, вероятно, есть проблема с ulimit на вашей машине. Проверьте ulimit -n, или ulimit -a. Если у вас ограниченный размер файла под 2048, это ваша вина, а не gwts :) – Ajax

Смежные вопросы