You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@myfaces.apache.org by "Leonardo Uribe (Resolved) (JIRA)" <de...@myfaces.apache.org> on 2012/02/13 17:55:00 UTC

[jira] [Resolved] (MYFACES-3461) HtmlRendererUtils.renderSelectOptions() performs many unnecessary calls to View Bean

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

Leonardo Uribe resolved MYFACES-3461.
-------------------------------------

       Resolution: Fixed
    Fix Version/s: 2.1.7
                   2.0.13
         Assignee: Leonardo Uribe

Thanks to Arne Reinhardt for this performance tip.
                
> HtmlRendererUtils.renderSelectOptions() performs many unnecessary calls to View Bean
> ------------------------------------------------------------------------------------
>
>                 Key: MYFACES-3461
>                 URL: https://issues.apache.org/jira/browse/MYFACES-3461
>             Project: MyFaces Core
>          Issue Type: Improvement
>          Components: General
>    Affects Versions: 2.0.7, 2.1.6
>            Reporter: Arne Reinhardt
>            Assignee: Leonardo Uribe
>            Priority: Minor
>             Fix For: 2.0.13, 2.1.7
>
>   Original Estimate: 2h
>  Remaining Estimate: 2h
>
> The Problem appeared testing with myfaces-impl-2.0.7 and is still visible in the 2.1.6 Code.
> HtmlRendererUtils.renderSelectOptions() loops over all SelectItems of a SelectBox to render them.
> Rendering depends on the activation state of both the item to be rendered and the entire SelectBox. Therefore the method queries the "diasbled" property of the UI component to be rendered (SelectBox). This is performed in the SelectItem-Loop so it may happen very often (depending on the size of the Select-List).
> It happens that queriing the "disabled" property implies calling the ViewBean to obtain the SelectItem-List (which the Method itself loops over!). This can be a perfromance issue if obtaining the SelectItem-List takes some time (in our example every single call  took 10ms and the list consisted of 150 items so the call was performed 150 times which adds up to 1.5s). Anyway there is a lot of unnecessary Reflection and Method Calls to be avoided.
> We solved the issue by simply moving the detection of the UI component's "disabled"-Property out of the loop.

--
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