Сравнение времени запуска сервера приложений?

Несколько месяцев назад я прочитал сообщение в блоге, в котором сравнивались различные (Java) серверы приложений с акцентом на время, необходимое для запуска/перезапуска серверов после развертывания нового/измененного фрагмента кода, и обсуждение потерянного разработчика. производительности все это вызывал перезапуск.

Я забыл добавить запись в блог; Я пробовал Google, но я не могу найти оригинальную статью.

Кто-нибудь еще видел/читал эту статью или имеет ссылки на похожие статьи/статистику?


person ObiWanKenobi    schedule 21.09.2009    source источник


Ответы (3)


Я думаю, вы ищете "Результаты опроса: Java Контейнеры EE — рай или ад?»» от ребят из JavaRebel JRebel.

person Pascal Thivent    schedule 21.09.2009
comment
То есть вы на самом деле искали не ответ, а только ссылку на статью, которую вы потеряли? :) Это инновационное использование stackoverflow! :D - person Vladimir Dyuzhev; 21.09.2009

Об этом есть несколько статей, поэтому трудно понять, какую конкретно вы имеете в виду.

При этом, это действительно зависит от технологического стека. Если вам нужна полная реализация J2EE, а не просто контейнер J2EE, время запуска будет сильно различаться.

Например, Tomcat можно запустить за считанные секунды. На моей машине примерно 1-2 секунды. Конечно, это контейнер J2EE. Он не включает такие функции, как EJB. Но в наши дни, кому это действительно нужно.

Полные реализации J2EE, такие как JBoss и Weblogic, например, потребуют гораздо большего времени запуска сервера. В основном от полминуты до нескольких минут.

Опять же, вам действительно нужно решить, какую именно часть стека J2EE вы хотите, и если вы не собираетесь использовать его в полной мере, тогда Tomcat отлично подходит для быстрого запуска.

Кроме того, даже если вы используете Tomcat для разработки, это не означает, что вам нужно использовать его для производства. Это не значит, что это плохой рабочий сервер, он просто легче.

person Stephane Grenier    schedule 21.09.2009
comment
Насколько я знаю, Tomcat не является контейнером J2EE, это механизм сервлета. Затем мне действительно интересно, насколько ценно учитывать время запуска пустого контейнера (любое приложение Tomcat/Spring/Hibernate, скажем, с 40+ объектами, займет более ~ 10 с с Java 6 на Core 2 Duo 2,33 ГГц). Наконец, яблоки не следует сравнивать с апельсинами (но вы об этом упомянули). - person Pascal Thivent; 21.09.2009
comment
Возможно, Servlet API является частью спецификации JavaEE, поэтому Tomcat является контейнером J2EE (без поддержки EJB). - person Vladimir Dyuzhev; 21.09.2009

Начнем с того, что приложение должно быть развернуто в готовом виде только для интеграционного тестирования. Это случается может быть два раза в день. Во всех остальных случаях вы выполняете модульное и локальное интеграционное тестирование (т. е. тест JUnit с фактическим подключением к базе данных), и эти тесты имеют почти нулевое время запуска.

Моя деятельность разработчиков выглядит следующим образом:

  • писать (моделировать) модульные тесты и код одновременно; запуск модульных тестов может быть 20 раз, прежде чем код заработает, как я ожидаю
  • писать локальные интегрированные тесты для основных случаев; запустить тесты может быть 3 или 5 раз, прежде чем я уверен, что все в порядке
  • упакуйте все приложение и пройдитесь по сценарию через пользовательский интерфейс один или два раза

При таком распределении времени время запуска AS не сильно влияет на мою производительность.

Так что вместо того, чтобы жаловаться на AS, лучше сначала попытаться организовать процесс разработки.

person Vladimir Dyuzhev    schedule 21.09.2009