Help

The first part of my new article, published today on JSFCentral, explains how you can increase the rendering performance of a data-driven, JSF-based Seam application by two orders of magnitude! The article originated out of a contract job I did over the summer (before joining Red Hat). I worked for a group of scientists to develop a data-driven application using Seam, JSF, and RichFaces. That means it comes straight to you from the real-world ;)

In the article, I point out several easy-to-fall-into traps that can hinder the performance of your application and go on to present several best practices that ensure your JSF-based Seam application can give the responsiveness of a desktop application a run for it's money. Go see for yourself! Sadly, you'll have to wait for part 2 to unfold to discover all the secrets and realize the full benefit.

You might be wondering what else I've been up to lately. JSF2, JSF 2, and more JSF 2. Over the course of the last several weeks I have been working on submitting proposals and implementations to port features from Seam to JSF 2. It's hard work because we're not just throwing the features over the fence, but working with the expert group to improve on them and ensure they integrate well with JSF, rather than just tacked onto the side. If things move along smoothly, I should be rolling out some blog entries about what is changing and how to use the new features.

9 comments:
 
06. Feb 2009, 14:51 CET | Link
Nik

I think you have a rendered= missing (in both cases) on page 2 where you flip on

"#{!benthicMsmntEditor.editing(_item)}
ReplyQuote
 
07. Feb 2009, 05:53 CET | Link
Shervin

Very very nice article. Lost of my co workers thought the same. Looking forward to part 2.

 
07. Feb 2009, 13:32 CET | Link
Stephen

Great article. I've used Seam quite a bit, but the performance hit for name resolution had never occurred to me.

Thanks!

Stephen

 
07. Feb 2009, 22:58 CET | Link

You are correct, the attribute name rendered is missing in each case. I'll get that fixed. It should be as follows:

rendered="#{!benthicMsmntEditor.editing(_item)}"
 
08. Feb 2009, 03:13 CET | Link
Adrian Mitev

More performance tips can be found here.

 
08. Feb 2009, 04:27 CET | Link

Hi Dan Thanks for the articles. The editable data table is so useful that, I think, should be a standard composite control in one of the next RichFaces releases. By the way, I'm wondering if you can post the code you used to manage it in your application. I suppose to know how to do it (using some of the hints of your Seam in Action), but I would like to compare your way with my way, that is based on the use of the s:button and @DataModel/@DataModelSelection.

Bye Marco

 
08. Feb 2009, 05:45 CET | Link
Adrian Mitev

I would like to see the source code too.

 
09. Feb 2009, 18:35 CET | Link
Great article; we add quite a similar problem on a page displaying a pivot table with dynamic columns.
Display time went from ~6.6 sec. to 2.5 sec.

I'm eager to see part 2 :)
 
11. Mar 2009, 02:10 CET | Link

I'll bundle up the source code and have it attached to both parts of the articles when part 2 is released later this week.

The source code for the full EDAS2 project has just been made available at SourceForge.net.

http://edas2.cvs.sourceforge.net/viewvc/edas2/edas2/

Obviously that source code is much more complete as it is being actively developed.

Post Comment