Профилирование / отладка приложения JBoss AS / Seam - PullRequest
2 голосов
/ 02 декабря 2010

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

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

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


-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 ГБ памяти

1 Ответ

2 голосов
/ 02 декабря 2010

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

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

Вы получите вывод, подобный этому:

  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


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

...