I grabbed the attachments from the original performance bug https://javaserverfaces.dev.java.net/issues/show_bug.cgi?id=3 and ran some JMeter tests against the "JSP only" and the JSF versions.
The pages are really simple, the JSP version outputs a page which is visually identical to the JSF page. The table in question had 10 columns and 50 - 200 rows. Not a huge amount of data. I used MyFaces 1.1.3 as the JSF implementation and ran the test in JBoss 4.0.4 GA running on JDK 1.4.2.
Here's the results:
Table Rows Average [ms] Median [ms] Hits / Min Samples
JSF Testcase 50 36 30 1300 5007
JSP Testcase 50 14 10 4030 5001
JSF Testcase 100 56 60 1050 5001
JSP Testcase 100 21 20 2700 5001
JSF Testcase 200 100 100 590 5001
JSP Testcase 200 26 30 2170 5001
This data confirms the discussion in the sun forum. The JSF version started out nearly three times slower than the JSP page. The relative performance of the JSF version degraded to nearly four times slower as table rows were added.
So if you are thinking about adopting JSF you should be aware of the performance hit and make sure that you can architect around the problem or get the performance benchmarks adjusted. Perceived performance is important in real life projects so it's more than a theoretical problem.
I'd also like to know if anybody has ideas or code samples that make JSF perform better?
View this message in context: JSF Performance Problems
Sent from the MyFaces - Users forum at Nabble.com.