Not surprising at all.  Obviously, a hardware vendor who makes their money 
selling hardware, not software, wants to sell more hardware.
Also more features means slower software.

John

-----Original Message-----
From: Michael Heinen [mailto:[email protected]] 
Sent: Friday, January 29, 2010 12:36 AM
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:[email protected]] 
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

Reply via email to