myfaces-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Gabrielle Crawford (JIRA)" <>
Subject [jira] Commented: (TRINIDAD-906) optimize getClientId - use per thread shared StringBuilder
Date Tue, 22 Jan 2008 20:58:34 GMT


Gabrielle Crawford commented on TRINIDAD-906:

Thanks for the comment. Yes, there is no state stored on the thread, we are not caching any
part of the id, we use a stringBuilder to create the id, and then immediately call toString,
so this change is just to avoid allocating new StringBuilder instances.

> optimize getClientId - use per thread shared StringBuilder
> ----------------------------------------------------------
>                 Key: TRINIDAD-906
>                 URL:
>             Project: MyFaces Trinidad
>          Issue Type: Bug
>    Affects Versions: 1.2.5-core
>            Reporter: Gabrielle Crawford
>            Assignee: Gabrielle Crawford
>            Priority: Minor
>             Fix For: 1.0.6-core, 1.2.6-core
> In getClientId/getContainerClientId we create a new stringBuilder. 
> However when creating a client id we only use one stringBuilder at a time, so have a
single instance of a StringBuilder saved on thread local. 
> Have a utility to get this instance, and any time a user gets the instance, set the length
of the stringBuilder to 0. This will completely break if a user tries to call it for 2 stringbuilders,
so doc this well.
> Preliminary testing by a performance person here at Oracle found "the saving is ~300KB
out of 5850KB for the request. This is about 5% total request memory. As expected profile
shows that most of the memory saving comes from not creating huge number of string builders"

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

View raw message