You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@myfaces.apache.org by "Matthias Weßendorf (JIRA)" <de...@myfaces.apache.org> on 2008/08/20 15:10:46 UTC

[jira] Resolved: (TRINIDAD-1164) getFacetsAndChildren from UIXComponentBase allocates a lot of memory

     [ https://issues.apache.org/jira/browse/TRINIDAD-1164?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Matthias Weßendorf resolved TRINIDAD-1164.
------------------------------------------

       Resolution: Fixed
    Fix Version/s: 1.0.10-core
                   1.2.10-core

> getFacetsAndChildren from UIXComponentBase allocates a lot of memory
> --------------------------------------------------------------------
>
>                 Key: TRINIDAD-1164
>                 URL: https://issues.apache.org/jira/browse/TRINIDAD-1164
>             Project: MyFaces Trinidad
>          Issue Type: Bug
>    Affects Versions:  1.2.8-core
>            Reporter: Stevan Malesevic
>            Assignee: Matthias Weßendorf
>             Fix For: 1.2.10-core, 1.0.10-core
>
>         Attachments: trinidad-1164.patch, trinidad-1164_blake.patch
>
>
> getFacetsAndChildren of UIXComponentBase is invoked number of times during request processing (_findInsideOf , decode,....). In the case where component has facets the code will rebuild a ArrayList on every invocation. This is very expensive in terms of total allocated transient memory and CPU. We should save the ArrayList of facets and children first time it is built and recreate only in case of change. 
> Also,  the call _facets.values() which creates iterator seems very expensive. Maybe better approach is to just do:
>     for(int i = 0; i < _facets.size(); i++) 
>     {
>         childrenAndFacets.add(((FacetHashMap)_facets).getValue(i));
>     }

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.