【问题标题】:Profiling/debug JBoss AS/Seam application分析/调试 JBoss AS/Seam 应用程序
【发布时间】:2010-12-02 11:55:08
【问题描述】:

最近我开始开发 JBoss SEAM Web 应用程序(拍卖网站)。到目前为止,我做得很好,但最近我遇到了很长的加载时间(尤其是在 javascripts/css 文件等资源上,而且页面本身也很慢)。

是否有用于 JBoss SEAM/AS 的分析器,我可以在其中查看内存中的类等?

CSS/JS/图像文件的加载时间长的原因可能是什么?由于开发原因,我还没有启用 seam 提供的 web-cache 过滤器。这是我的虚拟机参数

-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

系统

  • 英特尔酷睿 2 双核 E6550
  • 4 GB 内存

【问题讨论】:

    标签: java jboss seam application-server primefaces


    【解决方案1】:

    我写了一篇博文,展示了一个拦截器,它可以测量你的组件正在使用的每个方法调用。

    这样你可以看到哪些方法使用时间长,并且可以在你的代码中找到错误。 查看here 并向下滚动到第二个示例。

    你会得到这样的输出:

      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 knowledge-base 上有一个 profiling page,但确实不太好。

    Dan Allen 还写了一篇关于加速 jsf 应用程序的不错的两部分文章,值得一读。

    Part 1

    Part 2


    类似Firebug 的工具也是 javascript/ajax 性能工具的必备工具

    【讨论】:

    • 拦截器不错!谢谢你 :) 关于 SEAM 更高级/性能方面的好文章。我已经安装了 FireBug,并且似乎 javascript、样式表、图像等资源需要 1-2 秒才能加载(使用 primefaces 会导致大量加载时间)。一个正常的页面在 200-400 毫秒内加载。我想这还不错,但它仍然可以更快:)
    • 也许您可以对 Primefaces 进行一些调整。例如在 Richfaces 的 web.xml 中,我们可以通过配置压缩脚本和 css。我很确定 Primefaces 也有类似的东西。这可能会有很大帮助
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-13
    • 2011-04-26
    • 1970-01-01
    • 2013-07-13
    • 2023-04-06
    相关资源
    最近更新 更多