Как улучшить производительность Spring MVC? - PullRequest
2 голосов
/ 23 сентября 2011

Существуют ли передовые методы повышения производительности весенних веб-приложений?

Я использую ehcache для статического контента, пытаюсь загрузить JavaScript в конце моего приложения, но приложение пока не работает гладко. Для простой регистрации требуется только GET-запрос для сопоставления URL-адреса и инициализации сеанса и последнего боба в течение 7 секунд.

Конечно, вы можете многое оптимизировать для конкретных задач, но я хотел бы знать о проблемах с производительностью generell и о том, как их решать.

Шаблоны, лучшие практики и т. Д. Очень приветствуются.

Ответы [ 3 ]

5 голосов
/ 23 сентября 2011

Создание тестов производительности (например, с jmeter ). Профилируйте вашу заявку, либо с помощью полноценного профилировщика, либо с помощью инструментов. Если вы используете Spring (и источники данных, сконфигурированные Spring), мне очень нравится javamelody , который представляет собой простой плагин, который обрабатывает и собирает статистику производительности вашего приложения.

Запустите тест, проверьте информацию профилирования, определите узкие места, оптимизируйте худших нарушителей. Повторите, пока не выполнено.

Нет никаких проблем с производительностью Spring MVC. Проблемы с производительностью происходят из других областей. Плохие SQL-запросы, медленные внешние интеграции, чрезмерное сумасшествие JSTL в ваших взглядах и т. Д. И т. Д.

5 голосов
/ 23 сентября 2011

В общем, я рекомендую:

  • создать тестовую среду, в которой вы сможете выполнить приложение и получить изнутри
  • Писать повторяющиеся сценарии тестирования производительности, ориентируясь как на абсолютную производительность(например, «сколько времени потребуется, чтобы отобразить эту страницу») и производительность в масштабе (например, «как снижается производительность под нагрузкой?»)
  • приклеивает профилировщик к вашей тестовой среде.Прошло много времени с тех пор, как я работал над Java-приложениями, но их доступно много.
  • Запустите тест производительности во время работы вашего профилировщика.Выясните, что является узким местом.Исправить узкое место.Полоскание.Повторите.

Я, как правило, рекомендую НЕ указывать испытательный стенд аналогично производственному оборудованию, потому что очень трудно создать нагрузку, достаточную для нагрузки на систему.Это также очень дорого.

Если у вас есть «производственная» среда для тестирования, сделайте это сейчас - в идеале вы получите те же результаты, что и в тестовой среде, но не всегда;если это вообще возможно, установите профилировщик и посмотрите, где узкое место.

Как только вы это сделаете, вы можете развернуть оптимизированное приложение в своей производственной среде.

0 голосов
/ 05 сентября 2016

VisualVM очень полезен для анализа.Можно загрузить по ссылке .Пулы памяти и плагины Visual GC, которые не установлены по умолчанию, также полезны для мониторинга использования памяти и активности GC.

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