I have profiled my Spring 2.0 + Hibernate 3.0 + JSF 1.1. I also ran Yslow for browser side optimization. It led me to think that the problem is more to with JSF side of the application than the back-end side.
We are stuck with RichFaces 3.1 (based on JSF1.1) due to dependency on Weblogic NetUI (used for flow). From JBoss Jira I can clearly see, most performance improvements as part of bug-fixing process, have gone into RichFaces 3.2 (recommended to be used with Seam 2.1)
Also during this part of development cycle we cannot switch to Facelets, to gain performance benefits.
Here are some clarifications I am seeking
1) Does putting beans in request scope would always have a better performance over those set in session scope?
2) What are the best practices when one is using JSF witrh AJAX?
3) We are considering switching to Server side state saving with no serialization (MyFaces has configuration options for this). Does anyone have any experience with this?
4) Also any idea what is the performance hit due to a PhaseListener and AOP, as both of them are applied to every request ?
I would really appreciate if any of you could give me pointers to best practices in JSF programming as regards performance tuning.
Thanks in advance,