У меня есть веб-приложение, разработанное с помощью struts2, развернутого в tomcat 5.5. На сервере развернуты другие приложения. Но приложение, созданное с помощью struts2, работает очень медленно. Есть идеи? Как Struts 2 обрабатывает создание объектов? И есть ли что-нибудь, что я могу сделать на сервере tomecat..
Есть ли у Struts 2 проблемы с памятью?
Ответы (3)
Насколько это медленно? Что ты делаешь? вы уверены, что медленный Struts 2, а не код вашего приложения? Вы занимались профилированием? Каковы результаты?
Проверьте это: http://struts.apache.org/2.2.1/docs/performance-tuning.html
Я обнаружил, что обслуживание статического контента из папки увеличило скорость.
Ну, на самом деле требуется немного деталей, чтобы кто-то мог ответить на ваш вопрос более хорошим способом.
Какую версию Struts2 вы используете
В каком месте/части, по вашему мнению, приложение работает медленно
по моему опыту, есть определенные области, в которых у Struts2 есть известные проблемы, OGNL сам по себе иногда создает проблемы, поскольку это часть структуры, которая занимала большую часть времени, это, как известно, было исправлено в версии 3.x OGNL, так что вы вы можете получить новую банку OGNL, а затем протестировать свое приложение. Во-вторых, используйте какой-нибудь профилировщик, и это поможет вам поймать виновника, например, любую блокировку потока и т. Д.
На какой ОС работает Tomcat?
Если это Linux, возможно, вы столкнулись с проблемой отсутствия энтропии. Если эта команда возвращает меньше 200, это может объяснить вашу проблему:
cat /proc/sys/kernel/random/entropy_avail
Если он низкий (или наблюдайте во время запуска/отправки запросов), попробуйте указать /dev/random на /dev/urandom. (Не для безопасного производства, но для тестирования в Dev должно быть хорошо):
mv /dev/random /dev/random.orig
ln -s /dev/urandom /dev/random
И попробуйте снова запустить Tomcat.