Как улучшить скорость запуска Vaadin в режиме отладки? - PullRequest
2 голосов
/ 11 октября 2010

Когда я создаю даже простое приложение "hello world" для Vaadin, развертываю его на сервере и набираю URL-адрес приложения в браузере, мне приходится ждать около 5-10 секунд, пока приложение не появится. Следующие запуски выполняются быстро, но когда я перехожу или меняю классы горячей замены, мне приходится снова ждать. Когда я добавляю его во время запуска базы данных, время запуска сервера и т. Д., Это занимает слишком много времени.

Есть ли способ устранить эту медлительность запуска Vaadin? Это важно, потому что каждая дополнительная медлительность делает цикл программирования modify + run + test более расстраивающим - не весь код может быть протестирован модульно, единственный способ проверить некоторые вещи - это изменить вручную + run + test.

Аналогичная проблема существует в режиме отладки GWT. Поскольку Ваадин основан на GWT, возможно, причина этой медлительности не в Ваадине, а в GWT?

Мое окружение: IntelliJ 9 + Tomcat 6 + Windows 7, 64-битная + быстрая Core 2 Duo

Ответы [ 3 ]

2 голосов
/ 20 октября 2010

Если при запуске приложения Vaadin происходит медленно: убедитесь, что ваш метод Application.init () не выполняет слишком тяжелых операций - соединения с базой данных, загрузка большого количества данных и т. Д. Вы можете принудительно запустить этот сеанс в Vaadin с помощью параметра URLrestartApplication

Если горячее развертывание идет медленно, даже когда приложение не перезапускается (состояние пользовательского интерфейса сохраняется): это связано с частью клиентской части (GWT) Vaadin.Возможно, кеширование как-то полностью игнорируется.Оптимизация виджетов может помочь.

2 голосов
/ 27 ноября 2011

Ваадин проводят большую часть этого времени здесь com.vaadin.terminal.gwt.server.AbstractApplicationServlet # serveStaticResourcesInVAADIN (на самом деле контейнер сервлетов, а не сам ваадин)

Я думаю, это потому, что vaadin.jar слишком велик.

Так что вы можете просто извлечь VAADIN dir из vaadin.jar в ваш webRoot, и время запуска приложения сократится.

Другое очень хорошее (но платное) решение - http://zeroturnaround.com/jrebel

1 голос
/ 11 октября 2010

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

Однако 5-10 секунд, имхо, действительно не так уж и плохо, у меня было намного хуже.

...