myfaces-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Martin Kočí (Commented) (JIRA) <...@myfaces.apache.org>
Subject [jira] [Commented] (MYFACES-3480) [perf] Use lazy init for HashMap/HastSet where possible
Date Tue, 06 Mar 2012 18:40:57 GMT

    [ https://issues.apache.org/jira/browse/MYFACES-3480?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13223524#comment-13223524
] 

Martin Kočí commented on MYFACES-3480:
--------------------------------------

patches for classes found by profiler. _ComponentAttributesMap patch reduces unnecessary StateHelper/HashMap
initializations from:
         javax.faces.component._ComponentAttributesMap.getUnderlyingMap()	
            javax.faces.component._ComponentAttributesMap.containsKey(Object)
               javax.faces.component.UIComponent.isCompositeComponent(UIComponent)
                  javax.faces.component.UIComponent._isCompositeComponent()
and 

javax.faces.component._ComponentAttributesMap.get()
  org.apache.myfaces.view.facelets.impl.FaceletCompositionContextImpl.finalizeForDeletion(UIComponent)


There are more classes for optimalization, but complexity requires separate bugs.
                
> [perf] Use lazy init for HashMap/HastSet where possible
> -------------------------------------------------------
>
>                 Key: MYFACES-3480
>                 URL: https://issues.apache.org/jira/browse/MYFACES-3480
>             Project: MyFaces Core
>          Issue Type: Improvement
>            Reporter: Martin Kočí
>            Assignee: Martin Kočí
>            Priority: Minor
>         Attachments: FaceletCompositionContextImpl.patch, RequestViewContext.patch, TemplateContextImpl.patch,
UIViewRoot.patch, _ComponentAttributesMap.patch
>
>
> goal: make component tree creation fast as possible and avoid unnecessary instances
> some components instantialize attributes direct in field or in constructor. In many cases
it is not necessary, because those HashMap/Set instances are not used in current request/response
- it depends on use case.
> Example: UIViewRoot.listenerSuccessMap: lazy init is very suitable, because many view
have no phase listener.
> Check all components: candidates are "smarter" components like UIDate or UIInput

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

       

Mime
View raw message