myfaces-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Madhav Bhargava <>
Subject RE: Performance issues with JSF
Date Fri, 17 Jul 2009 10:05:50 GMT
Shashi wrote:
>Hi All - We have built a J2EE application with JSF (MyFaces, Ajax4JSF) ,Spring and IBatis.
What we find is, each of the screen takes lot of time to >load. We find no performance
issue with Spring or Ibatis (after verifying via JProfiler). Jprofiler shows the JVM memory
is occupied b JSF objects. I >found that the screen loading is taking time for two reasons.
>1.The JSF screens (which has cook menu) take time to load.
>2.The overall screen painting in the browser takes time to load.
>Our JSF screens are not too complicated and even the simplest screen takes time to load.
Note that each of the screens always loads JSCookMenu. We >visited apache site for tuning
JSF. As per their suggestion we did the following
>1. We set the State saving mechanism as server side.
>2. Serialization of session objects was set to false.
>3. Compression of objects was set to false.
>4. Streaming Add Resource and t:documentHead were added.
>But none of these improved the performance.
>The overall screen takes time and I'm wondering if we should do effective caching of images,CSS
and js files. I visited plenty of websites and tried to >move all these client specific
files under the <head> tag, loaded the images via CSS but nothing helps. We have high
capacity machines and I dont >think desktop config is playing a role.
>We thought the problem could be bcos of network traffic or slow performance of underlying
platform websphere server. We checked other application >running in the same envrironment
and they are extremely fast. The only difference b/n our application and the other is JSF.
>I'm short of solutions. Any valuable input will be greatly appreciated.

You might want to check on the following:

1.       Utilize HttpAnalyzer or any other similar tool to check what is the response received
for every action. Since you have used Ajax in your page you need to check the response that
you are getting back on each ajax call and whether it is only what should be returned.

2.       There are some optimizations that are listed on Ajax4Jsf site which in past has proven
to be the guilty party for performance related issues.

3.       Check what is the size of the response. If the page is too large then you can consider
introducing a gzipfilter to compress the response and thereby reducing the network bandwidth

4.       Check if objects are not getting released. Some of the Ajax4Jsf components like a4j:keepAlive
keep the objects in memory for longer period than expected.

5.       Also checked if there are too many session scoped beans and thereby slowly adding
to memory usage and eventually affecting everything.

6.       There are other parameters in myfaces configuration like number of views in session.
Try changing that as well.

7.       Check if the page is not heavy with different types of content (images, audio/video
etc..). Go for incremental loading.

View raw message