RENDER_RESPONSE需要很长的接缝

时间:2010-09-24 08:21:54

标签: rendering richfaces seam long-integer phase


我使用带有Richfaces的JBOSS Seam编写应用程序。不幸的是,它的某些页面加载时间非常长,特别是当我想在表格中显示大约100行(或更多)时 从数据库获取响应大约需要2453毫秒,所以它非常好。然而,阶段RENDER_RESPONSE大约需要23750 ms,因此这是不可接受的。我返回的对象没有EAGER连接。

希望有人能帮助我或暗示我还能做些什么才能找到问题。

问候, Fryta PS。在这里你有我的应用程序的日志: 09:49:52,125 INFO [[/ my_aplication]]之前 - INVOKE_APPLICATION 5 - / my_aplication / Report.seam
09:49:54,578 INFO [报告]结束发生报告:2453
09:49:54,578 INFO [[/ my_aplication]] AFTER - INVOKE_APPLICATION 5 - / my_aplication / Report.seam
09:49:54,578 INFO [[/ my_aplication]]之前 - RENDER_RESPONSE 6 - / my_aplication / Report.seam
09:49:54,687 INFO [报告] getResultList():1285314594687
09:49:54,687 INFO [报告] getResultList():1285314594687
09:49:54,687 INFO [报告] getResultList():1285314594687
09:49:54,687 INFO [报告] getResultList():1285314594687
09:49:54,687 INFO [报告] getResultList():1285314594687
09:49:54,718 INFO [报告] getResultList():1285314594718
09:50:18,437 INFO [报告] getResultList():1285314618437
09:50:18,437 INFO [报告] getResultList():1285314618437
09:50:18,468 INFO [[/ my_aplication]] AFTER - RENDER_RESPONSE 6 - / my_aplication / Report.seam
09:50:18,890 INFO [TimingFilter]

09:50:18,890 INFO [TimingFilter]总计:18258ms dla:/ my_aplication / Report.seam

3 个答案:

答案 0 :(得分:1)

我在你的日志中看到这一行:

getResultList(): 1285314594687

......重复了很多次。这个电话有什么作用?它只返回在其他地方初始化的List吗?或者它正在调用数据库?如果呼叫中涉及任何类型的逻辑,那么可能就是发生减速的地方。

答案 1 :(得分:1)

我建议你阅读how you can speed up your JSF/Seam/Richfaces撰写的这篇非常棒的帖子Dan Allen(作为Seam in Action的作者)

答案 2 :(得分:0)

我很确定它会发生,因为你是懒惰加载关联实体。由于Seam内置支持Open Session in View模式(避免了LazyLoadingException),对于每个延迟关联实体,Hibernate命中数据库您可以覆盖getResultList(或创建自定义方法)和使用单个SQL查询加载所有需要的实体