Как я могу постоянно останавливать JPA Facet на Eclipse?

У меня есть проект EJB2/EJB3 Java в Eclipse. Недавно я включил JPA Facet и теперь установил Dali и настроил доступ к базе данных MySQL, содержащей фактические таблицы и данные.

Проблема заключается в том, что редактирование объекта beans в Java-редакторе IDE стало в 100-1000 раз медленнее. Напишите одно слово, см. "Обновление проекта JPA", появится в строке состояния, подождите 30 секунд. ЦП при высокой нагрузке, Eclipse полностью не отвечает, затем продолжите и напишите следующее слово.

Проект, который делает JPA медленным, является средним, а не просто простым интернет-магазином, но не корпоративным. Я считаю 42 сеанса без состояния beans и 49 Entity Beans. На самом деле у нас больше entity beans, но многие из них еще не были преобразованы в EJB 3, но вместо этого отображаются только с EJB 2.1.

Самый длинный из сеансов beans охватывает 20616 строк, самые длинные - волосы ниже 2 тыс. строк.

Медленность JPA настолько серьезная, что делает код ввода медленным. После каждых 5-10 символов Eclipse переходит в полную остановку в течение нескольких секунд, а контент-поддержка почти непригодна для использования, поскольку она продолжает вызывать внутренние тайм-ауты Eclipse.

Итак, вопрос в том, как: Как сохранить JPA Facet включенным для проекта и по-прежнему не отставать от реальной работы? Какой-то простой тумблер, который просто отключил бы часть JPA, а затем снова включил бы, было бы прекрасно.

Ответы

Ответ 1

В Juno проект Dali сделал несколько улучшений производительности, которые должны помочь в вашей ситуации. Мы также внесли изменения, чтобы подтолкнуть некоторые из наших работ к фоновым потокам и использовать среду Eclipse Jobs.

Если вы по-прежнему видите отставание производительности в Juno, я бы очень признателен вам за то, что вы отправили нам информацию о профилировании производительности. Я мог бы попытаться использовать ваши результаты в своей работе для повышения производительности (если возможно, в Juno SR1). У меня был успех с использованием Java VisualVM, включенного в jdk1.6.0_31. Я установил параметры процессора профилировщика в "Начать профилирование из классов: org.eclipse.jpt. **, снимите флажок" Профилировать новые Runnables "и" Профили только для классов: "org.eclipse.jpt. *. Затем вы можете запустить один из ваших прецедентов, который вызывает проблемы, и привязать полученный снимок к ошибке eclipse (инструменты WebTools-Dali Jpa).

Ответ 2

Недавно мой друг показал мне способ отключить постоянные обновления "JPA Facet" после операций "Обновление Maven".

Пожалуйста, попробуйте следующее: в меню Окно → Настройки → Maven → Интеграция Java EE

  • отключить опцию "Конфигуратор JPA" .

введите описание изображения здесь

Ответ 3

Я просто отключил все проверки Eclipse через Preferences > Validation > suspend all validators:

No validation

Я не помню последний раз, когда мне понадобилась проверка, или считал, что это была полезная функция в первую очередь. Если вы хотите помочь всей команде, вы можете также проверить в файле следующих файлов .settings/org.eclipse.wst.validation.prefs следующий файл:

DELEGATES_PREFERENCE=delegateValidatorList
USER_BUILD_PREFERENCE=enabledBuildValidatorListorg.eclipse.wst.wsi.ui.internal.WSIMessageValidator;
USER_MANUAL_PREFERENCE=enabledManualValidatorListorg.eclipse.wst.wsi.ui.internal.WSIMessageValidator;
USER_PREFERENCE=overrideGlobalPreferencestruedisableAllValidationtrueversion1.2.600.v201501211647
eclipse.preferences.version=1
override=true
suspend=true
vf.version=3

Это имеет тот же эффект, но может быть проверено на управление версиями.

И вдруг процессорный кулер снова становится тихим.