Reputation: 1
We have an application running on JBoss EAP 8, Mojarra 4.0.4, Primefaces 14. There is a large page with many composite components, with multiple places that update parts of the page with ajax (with no process/update on other components). Those request take a long time (about 5s) with all the time spent in RESTORE_VIEW and RENDER_RESPONSE phases. Profiling shows that most of the time is spent in CompositeComponentTagHandler.applyCompositeComponent, which makes sense, since there are a lot of composite components there. There's also almost no difference in time those requests take in Development and Production Project Stage.
We have a similar sized page in a legacy application on Weblogic 14, MyFaces 2.3, and there the requests take about 32s to complete in Development but only 0.7s in Production.
So I decided to try using MyFaces in the new app (specifically MyFaces 4.0.2) and after fixing some issues that caused errors in MyFaces, but worked fine with Mojarra, there is a large difference in performance - again, takes longer in Development, about 10s, but much shorter in Production, about 0.9s.
Interestingly, fixing those issues (:@namingcontainer in update and UnmodifiableList saved in state) seemingly improved the performance to about 2s in Mojarra. Still, thats 2x slower than MyFaces.
I'm wondering whether there might be some settings that MyFaces changes when in Development/Productions stage that I could also change in Mojarra, or is this just an innate performance difference due to different implementations.
Upvotes: 0
Views: 65