[
https://issues.apache.org/jira/browse/MYFACES-2780?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12887029#action_12887029
]
Michael Concini commented on MYFACES-2780:
------------------------------------------
Sorry for the delay in responding...I've been locked into a customer situation
the past few days and haven't had any time to catch up until now.
I've got a change I'm going to commit this morning to allow users to disable
lazy loading via a context param.
To answer your questions about the implementation, it is a pretty simple
design. Using a converter as an example:
Previously, during startup we would execute Class.forName() against the
classname passed in for a named Converter and store converter name -> convert
Class object on the map. Then during each request, we call newInstance on the
class object if that converter is used.
Now, during startup we simply store the classname on the map during startup,
and save executing the Class.forName() lookup until the first request that uses
that object. Upon that first request, we then swap out the classname String
for the Class object on the map and continue on with the same processing as
before. Then on subsequent calls the Class object is already on the Map so all
would function exactly the same as it did previously.
> MyFaces performance improvements for production
> ------------------------------------------------
>
> Key: MYFACES-2780
> URL: https://issues.apache.org/jira/browse/MYFACES-2780
> Project: MyFaces Core
> Issue Type: Improvement
> Components: General
> Affects Versions: 2.0.0
> Reporter: Michael Concini
> Assignee: Michael Concini
> Priority: Minor
> Fix For: 2.0.1
>
>
> Several fixes to enhance startup memory footprint and runtime performance
> taking advantage of ProjectStage.
> -lazy loading of validators, converters, behaviors,components - can have a
> substantial impact on startup footprint in applications with multiple or very
> large widget libraries.
> Turn off some updating of resources for ProjectStage=Production by default
> (can always override using javax.faces.FACELETS_REFRESH_PERIOD)
> -change default facelets refresh interval to -1 when projectStage is
> production. This by itself gains a 60% improvement in throughput.
> -disable reloading of web.xml and faces-config after the first load.
> -store a map to cache Class to listenerFor and resourceDependency annotations
> when in production.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.