myfaces-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Michael Heinen <michael.hei...@recommind.com>
Subject RE: dramatic performance decrease after update to JSF 1.2
Date Fri, 12 Feb 2010 16:00:30 GMT
I have some news regarding the performance problem.

The major performance decrease was caused by a Tomcat Bug.
See https://issues.apache.org/bugzilla/show_bug.cgi?id=48600
Setting metadata-complete="true" in web.xml improved the 1.2 speed significantly!

There seems to be still another problem in Tocmat:
Average results of 500 calls of a simple page (jsp) with 1000 h:output tags:

JSF 1.1 Tomcat: 26ms
JSF 1.1 Jetty: 35ms

JSF 1.2 Tomcat: 72ms
JSF 1.2 Jetty: 41ms 

Is anybody here aware of other Tomcat bugs or settings that could explain the above numbers?
I'll also ask on the tomcat list.

Michael


-----Original Message-----
From: Michael Heinen [mailto:michael.heinen@recommind.com] 
Sent: Freitag, 29. Januar 2010 09:36
To: MyFaces Discussion
Subject: RE: dramatic performance decrease after update to JSF 1.2

I am really astonished that nobody else out in the world faced or addressed this problem so
far.
JSF 1.2 seems to be much slower than JSF 1.1 (with jsps, don't know about facelets).

It can be reproduced easily with a simple JSF app without tiles, richfaces and all this stuff.
Just create a simple page with a few hundred output tags without any EL: 
e.g. <h:outputText value="1" style="z-index:4711;"/>.

It is nearly two times slower and the time is lost during phase render response.
Same effect occurs with Mojarra, which seems to be faster than Myfaces (at least for this
simple case).

This effect is of course worse in case of heavy load on the app.
A version upgrade should not result in such a performance loss, we are not talking about a
few percent.

Does anybody have an explanation for this?
Is it caused by separating tree creation from rendering?
Is the component tree now walked completely two times, for creation and rendering?

Michael


-----Original Message-----
From: Michael Heinen [mailto:michael.heinen@recommind.com] 
Sent: Freitag, 15. Januar 2010 11:07
To: MyFaces Discussion
Subject: dramatic performance decrease after update to JSF 1.2

Hi,

I have updated my application to JSF 1.2 during the last weeks.
Now I did some performance tests and the result has been alarming!
Performance declined by factor 2-4 depending on hardware and actions!!!

Measurements:
I used two different contexts on same Tomcat means identical tomcat config and JDK.
I started only one of the contexts for each tests run. Backend is also the same.
JMeter was used to fire requests but the difference can be seen by manual clicks immediately.

Obvious results:
Time is lost in phase render response.
Sample numbers for a single request on a slow notebook in phase render response (with debug
logging):
 JSF1.1: 1594ms
 JSF1.1: 4766ms
(The numbers are much better without debug logging of course but the factor is still the same)

Environment:
  Tomcat 6.0.20
  JDK 1.6.0.18

Updated Libs:
  myFaces: 1.1.5 to 1.2.8
  tomahawk: 1.1.7 to 12-1.1.9
  richfaces: 3.1.5 to 3.3.3Beta1
  tiles: 1(struts) to 2.0.5
  jstl:  1.1.0 to 1.2
  commons-digester: 1.7 to 1.8
  oro-2.0.8 to jakarta-oro.jar

Settings:
  identical in 1.1 and 1.2:
    javax.faces.STATE_SAVING_METHOD=server
    org.apache.myfaces.NUMBER_OF_VIEWS_IN_SESSION = 1
    org.apache.myfaces.SERIALIZE_STATE_IN_SESSION = false
    org.apache.myfaces.COMPRESS_STATE_IN_SESSION=false

  1.2 new:
    org.apache.myfaces.SECRET added
    org.apache.myfaces.USE_ENCRYPTION = false
    org.apache.myfaces.CACHE_OLD_VIEWS_IN_SESSION_MODE=off (I patched this in 1.1 and removed
the old references)


Questions before I start profiling and probably sink time:
1) Is this typical or expected?
2) Is any new configuration flag added to 1.2 which could have high impact on performance?
3) Any other hints where to look at?

Michael


Mime
View raw message