2017-02-01 6 views
1

Мы строим приложение Wicket с Java 8/Spring 4/Hibernate 5/Wicket 7. Поскольку приложение растет, оно осознает, что со временем оно становится медленнее. У вас есть подсказки о настройке калитки, как анализировать и настраивать приложение? Я благодарен за ваши подсказки.Как настроить производительность моего приложения для калитки

  1. Как вы установки ваши компоненты (жизненный цикл (onBeforeRender(), onInitialize(), onConfigure(), и так далее))? Мы используем onInitialize для добавления дополнительных компонентов, onConfigure, чтобы включить компоненты или установить видимость на основе модели и onBeforeRender для замены компонентов. Модели инициализируются в конструкторе компонента.
  2. Вы знаете инструменты, чтобы лучше понять работу Wicket, сериализации (как калитка devutils DebugBar проверить размер сеанса.)

У меня есть ощущение, что добавив некоторые компоненты, которые вам не нужны в onInitialize() - не лучшее решение, потому что необходимо настроить и, возможно, никогда не использовать. (например, у нас есть модальные диалоги, которые открываются javaScript, но отображаются ранее). И, конечно же, вы не должны использовать дорогие методы для проверки видимости компонента в onConfigure()

+0

Я полагаю, что переход на современный клиентский интерфейс не является правильным предложением ... – Sebas

+0

Учитывая, что вы упомянули о стеке, я бы сосредоточился на Hibernate задолго до того, как вы начнете смотреть на что-либо еще. Шанс намного выше, чем там ощущаются заметные проблемы с производительностью. – Gimby

+0

* это было бы моим выбором *, но никто не заплатил бы нам за это, по крайней мере, я запускаю некоторые «подводные лодки кода», чтобы сделать это :). –

ответ

0

Я предлагаю вам использовать профилировщик, такой как JProfiler или YourKit, чтобы найти причину. Как только вы его найдете, гораздо проще искать решение.

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

Если вы обнаружите, что проблема заключается в самой Wicket, мы будем рады ее улучшить! Просто поднимите билет на https://issues.apache.org/jira/browse/WICKET!

+0

Я уверен, что это не ошибка в Wicket, я просто понял, что с ростом размера приложения и размера сеанса приложение становится медленнее (медленный процесс). Это развивающаяся проблема, просто хотелось узнать, как другие люди справляются с этим. Первое, что мы сделали, - это настройка наших запросов к базе данных, что очень помогло. Теперь я просто хочу знать, есть ли у людей хорошие стратегии или инструменты для использования Wicket. Но он считает, что вы правы, используя хороший профилировщик, возможно, это хорошо. –

+0

Мы также используем профилировщики. Я должен признать, что мне действительно нравится XRebel от ZeroTurnaround. Поскольку он отображается каждый раз, когда мы разрабатываем новые/старые страницы в Wicket и показываем вам такие вещи, как «размер сеанса» и количество запросов к базе данных. Это вызывает некоторые «WTF» -моменты типа «Эта простая страница не должна запрашивать базу данных 300 раз» или «Почему сеанс только увеличился на 1 МБ?» ... большинство из них довольно легко исправить. –