In 2013 we published a comparision of MyFaces vs Mojarra, where we had compared the behaviour of these two frameworks regarding the impact of the number of components on the lifecycle duration.
You can find the post at http://blog.oio.de/2013/04/08/jsf-comparison-myfaces-vs-mojarra/.
We found a significant impact in mojarra (actually the JSF reference implementation), which showed an non-linear behavior. Mojarra 2.1.22 (released on May 8th) was announced to contain a fix for https://java.net/jira/browse/JAVASERVERFACES-2494.
Now, more than a year later, we decided to rerun our test suite to see how performance stats look like in the current version of the oracle open source implementation. The surprising result of the test shows that this non-linear behavior resurfaces in versions 2.2.5 and 2.2.6.
Interestingly, versions from 2.2.1 up to 2.2.4 have not been affected and perform well even with large component trees.
Many thanks go to the mojarra team, for the very fast response time and fixing the issue within only a day after we reported this to the mailing list.
Mojarra 2.2.7 announced to fix this (again) with the work documented here https://java.net/jira/browse/JAVASERVERFACES-3193.
An initial test showed that we can confirm this and this latest release performs well even with larger component trees. Nice it has been solved now.
Should you happen to have “insanely huge” component trees (4000 components) in one of your pages, you might consider updating to 2.2.7 for performance reasons.