Профилирование / отладка приложения JBoss AS / Seam

Недавно я начал с разработки веб-приложения JBoss SEAM (аукционный сайт). До сих пор я отлично справлялся, но недавно я столкнулся с большим временем загрузки (особенно на ресурсах, таких как файлы javascripts / css, но также и сами страницы медленные).

Есть ли профилировщик для JBoss SEAM / AS, где я могу увидеть, какие классы находятся в памяти и т. Д.?

В чем может быть причина, по которой время загрузки файлов CSS / JS / изображений слишком велико? По причинам развития я еще не включил фильтры веб-кеша, предлагаемые seam. Это мои аргументы ВМ


-Drebel.log=true -noverify -javaagent:"C:\Program Files\ZeroTurnaround\JRebel\jrebel.jar" -Drebel.hibernate_plugin=true -Drebel.seam_plugin=true -Drebel.jboss_plugin=true -Drebel.allow_bytecode_proxy=true  -Dprogram.name="JBoss 5.1 Runtime" -Djava.endorsed.dirs="C:\Java\jboss\as5.0\lib\endorsed" -Dproject.home="C:\Java\jboss\as5.0\server\default\deploy\botenveiling.war" -Xms1024m -Xmx1024m -Dsun.rmi.dgc.client.gcInterval=3600000 -Dsun.rmi.dgc.server.gcInterval=3600000 -XX:+UseConcMarkSweepGC -XX:+CMSPermGenSweepingEnabled -XX:+CMSClassUnloadingEnabled -XX:MaxPermSize=512m -Xverify:none

Я сделал некоторые настройки (удалил некоторые приложения по умолчанию): http://www.jaysonjc.com/programming/how-to-configure-jboss-as-production-settings-and-tuning-tips.html

Я использую WAR-explode для развертывания файлов на сервере.

Настраивать:

  • Сервер приложений JBoss 5.1
  • JBoss SEAM 2.2.2CR1
  • JRebel
  • PrimeFaces 1.1

Система

  • Intel Core 2 Duo E6550
  • 4 ГБ памяти

person mark_dj    schedule 02.12.2010    source источник


Ответы (1)


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

Таким образом, вы можете увидеть, какие методы используются долгое время, и найти ошибки в своем коде. Взгляните здесь и прокрутите вниз до второго примера.

Вы получите такой результат:

  284.94 ms   1   FooBean.getRandomDroplets()
  284.56 ms   1   GahBean.getRandomDroplets()
  201.60 ms   2   SohBean.searchRatedDoodlesWithinHead()
  185.94 ms   1   FroBean.doSearchPopular()
  157.63 ms   1   FroBean.doSearchRecent()
  42.34 ms   1   FooBean.fetchMostRecentYodel()
  41.94 ms   1   GahBean.getMostRecentYodel()
  15.89 ms   1   FooBean.getNoOfYodels()
  15.00 ms   1   GahBean.getNoOfYodels()
  9.14 ms   1   SohBean.mainYodels()
  1.11 ms   2   SohBean.trackHoorayEvent()
  0.32 ms   1   FroBean.reset()
  0.22 ms  43   NohBean.thumbPicture()
  0.03 ms  18   FooBean.getMostRecentYodels()
  0.01 ms   1   NohBean.profilePicture()
  0.01 ms   1   FroBean.setToDefault()
  0.01 ms   1   FroBean.getRecentMarker() 

Во-вторых, в базе знаний Seam есть страница профилирования, но на самом деле она не так хороша.

Дэн Аллен также написал хороший пост из двух частей об ускорении работы вашего jsf-приложения, который стоит прочитать.

Часть 1

Часть 2


Инструмент, подобный Firebug, также необходим для инструментов повышения производительности javascript / ajax.

person Shervin Asgari    schedule 02.12.2010
comment
Хороший перехватчик! Спасибо за это :) Хорошие статьи, а также о более продвинутых аспектах SEAM. Я уже установил FireBug, и похоже, что такие ресурсы, как javascripts, таблицы стилей, изображения и т. Д., Загружаются примерно за 1-2 секунды (использование простых шрифтов вызывает много времени загрузки). Нормальная страница загружается за 200-400 мс. Думаю, все в порядке, но все же это могло быть быстрее :) - person mark_dj; 02.12.2010
comment
Возможно, вы сможете внести некоторые изменения в Primefaces. Например, в web.xml в Richfaces мы можем сжимать скрипты и CSS через конфигурацию. Я почти уверен, что у Primefaces есть нечто подобное. Это может очень помочь - person Shervin Asgari; 03.12.2010