ADF Faces: Solving a performance problem
August 29th, 2006 at 11:02 am by Robert Willems of BrilmanDuring the unit tests of our current project we encountered an unexpected problem in own of our pages. The page was really really slow on displaying and (partially) updating. During development we have come to expect the first page load to be kind of slow because of the compilation needed by the server. However after that all pages fly over your screen. Well… fly… average response time was about 0,2 to 0,4 seconds… This page however seemed to creep around in 4 to 8 (!) seconds just to load the initial page!
Time to pull out the gung JDeveloper supplies for this. JDeveloper comes with an execution profiler just for this problem. It lets you identify with parts of the application are taking up all the processign time.

Execution Profiler in the JDeveloper Run Menu
The way to work it was a little weird but the following worked for me:
- Start the execution profiler
- Navigate in your application to were you want the profiler to begin
- Press pause in the profiler, press clear and press run
- Now do the action in your application you want to profile
- Press pause in the profiler again.
You’ll now have a list of all the classes and methods that have run during your action.
We saw that most (80% -> 6 seconds!) of the time was spent in EL processing. After a little examination it seems that using <af:forEach> loops for dropdown lists (
We replaced these dropdown lists with ’standard’
It seems again that if you try to ‘outthink’ the framework you’ll end up regretting it.
Nice about the experience was my first time using the Execution Profiler. It really helped pointing to the problem area….
Popularity: 245 points


February 23rd, 2007 at 5:03 pm
This is very informative - thanks for sharing. Could you elaborate on the solution of standard items using dynamic lists?
September 12th, 2007 at 2:02 am
Hi,
Do you know why in my JDeveloper, this option of “execution profile project.jpr” is disabled?
I have the application running.
Thanks,
Mel