Файлы Struts 2 и Dojo слишком тяжелые и влияют на производительность сайта. - PullRequest
7 голосов
/ 29 ноября 2008

Хорошо ... мы разработали приложение j2ee с использованием возможностей struts2 ajax. Мы находим, что реализация dojo довольно медленная. Мы сделали следующие вещи: 1. Пользовательская сборка библиотеки dojo. (увеличено dojo.js с 240 КБ до 350 КБ) 2. Извлек все статические предметы из банки для стоек и держал их снаружи.

Производительность была значительно улучшена. Но все же он довольно тяжелый, как вы можете догадаться, с размером 350 КБ ..

Должен ли Ajax Struts2 быть таким тяжелым? или есть более легкая реализация?


Редактировать: я использовал Firebug и YSlow с моим приложением. Несколько изменений, которые значительно улучшили мою ситуацию, упомянуты ниже:

  1. Кастомная сборка додзё (уменьшено количество операций ввода-вывода)
  2. Переместить статические файлы из jar Struts (очень помогло)
  3. настройте свой сервер на сжатие ответа (уменьшил размер ответа до 1/3)
  4. Уменьшите количество изображений на вашем сайте. (Это очевидно)

Буду обновлять информацию о дальнейших изменениях.

Ответы [ 3 ]

8 голосов
/ 29 ноября 2008

Прежде всего убедитесь, что вы все сделали на сервере для облегчения кэширования (например, установка правильных заголовков HTTP, сжатие, кэширование на стороне сервера, восходящие кэши и т. Д.). Подробнее см. Повышение производительности & hellip; .

Цель состоит в том, чтобы максимально сократить количество операций ввода-вывода & mdash; используйте Firebug или любой другой инструмент мониторинга сетевого трафика, чтобы увидеть, сколько отправлено туда и обратно. Попробуйте свести к минимуму количество запросов ввода-вывода и общее количество байтов.

Не забывайте, что это относится и к вашим динамическим данным & mdash; выбирайте эффективные форматы, объединяйте несколько связанных запросов, удаляйте все мертвые деревья, которые отправляются снова и снова без изменений.

Если пользовательская сборка и настройки на стороне сервера не помогли, рассмотрите возможность упрощения реструктуризации вашего веб-приложения. Примеры:

  • Оцените технику заставки, описанную в ссылке выше.
  • Если вы используете множество различных виджетов форм, посмотрите, действительно ли это необходимо, и прибегните к обычным элементам DOM, таким как «input», «button», «textarea», «select».
  • То же самое касается виджетов макета. Посмотрите, может ли вам помочь простой CSS.
  • Оценить построение Dojo в слоях вместо одного монолитного dojo.js, чтобы веб-страницы загружали только необходимое подмножество. Подробности см. В Система пакетов и пользовательские сборки .

Создание веб-приложений с помощью Dojo в течение последних двух лет. Я все еще не видел того, которое нельзя оптимизировать должным образом, пока оно не будет полностью принято и не будет воспринято конечными пользователями как «быстрое», «ловкое» и «легкое» -вес».

2 голосов
/ 16 декабря 2008

Убедитесь, что вы в первую очередь следуете этому FAQ: http://struts.apache.org/2.x/docs/performance-tuning.html

Обычно я переписываю свою собственную тему вместо использования темы ajax struts2, в которую встроено dojo. Таким образом, я могу использовать любой набор инструментов, который я хочу использовать (jQuery). Наибольшие улучшения производительности я увидел, когда скопировал папку с шаблонами из jar в корневой веб-каталог для веб-приложения.

0 голосов
/ 16 декабря 2008

В последний раз, когда я проверял, Struts выпускал релиз Dojo (0.4), которому уже 2 года. Dojo переписал версию 0.9 / 1.0, которая имела значительный прирост производительности и уменьшил размер кода. Вы должны убедиться, что вы используете последнюю версию Dojo (текущая версия 1.2.3) и использовать сборку и советы от Eugene, выше.

...