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

Fabian Lange commented on LANG-990:
-----------------------------------

Sure,
I did a quick allocation profiling with JProfiler
a 50 char char buffer append to same string builder 10k times generates now 
3.274MB Objects the old code generated 4.714MB
Its obvious that it allocates less, the exact amount depends on the use case.
The time gain is insignificant, but existing as well.

> Avoid String allocation in StrBuilder.append(CharSequence)
> ----------------------------------------------------------
>
>                 Key: LANG-990
>                 URL: https://issues.apache.org/jira/browse/LANG-990
>             Project: Commons Lang
>          Issue Type: Improvement
>          Components: lang.text.*
>    Affects Versions: 3.3.1
>            Reporter: Mikhail Mazurskiy
>              Labels: github
>             Fix For: Review Patch
>
>         Attachments: LANG-990-v2.patch, LANG-990-v3.patch, LANG-990.patch
>
>
> StrBuilder.append(CharSequence) and StrBuilder.append(CharSequence, int, int) 
> can be optimized for the case when CharBuffer is passed. Current 
> implementation calls toString() method that allocates a new String. In case 
> when CharBuffer.hasArray() returns true the buffer-backing char array can be 
> accessed directly to copy chars from it.
> Also an instanceOf StrBuilder check can be added to 
> StrBuilder.append(CharSequence) and StrBuilder.append(CharSequence, int, int) 
> to avoid toString() in that case too (StrBuilder can be passed as 
> CharSequence in some cases).



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to