The Fix version should only be added when the issue has been fixed,
and should indicate the release in which the fix is available

On 30 January 2013 23:33, Sebb (JIRA) <j...@apache.org> wrote:
>
>      [ 
> https://issues.apache.org/jira/browse/CODEC-166?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
>  ]
>
> Sebb updated CODEC-166:
> -----------------------
>
>     Fix Version/s:     (was: 1.8)
>
>> Base64 could be faster
>> ----------------------
>>
>>                 Key: CODEC-166
>>                 URL: https://issues.apache.org/jira/browse/CODEC-166
>>             Project: Commons Codec
>>          Issue Type: Bug
>>    Affects Versions: 1.7
>>            Reporter: Julius Davies
>>            Assignee: Julius Davies
>>         Attachments: base64bench.zip
>>
>>
>> Our Base64 consistently performs 3 times slower compared to MiGBase64 and 
>> iHarder in the byte[] and String encode() methods.
>> We are pretty good on decode(), though a little slower (approx. 33% slower) 
>> than MiGBase64.
>> We always win in the Streaming methods (MiGBase64 doesn't do streaming).  
>> Yay!  :-) :-) :-)
>> I put together a benchmark.  Here's a typical run:
>> {noformat}
>>   LARGE DATA new byte[12345]
>> iHarder...
>> encode 486.0 MB/s    decode 158.0 MB/s
>> encode 491.0 MB/s    decode 148.0 MB/s
>> MiGBase64...
>> encode 499.0 MB/s    decode 222.0 MB/s
>> encode 493.0 MB/s    decode 226.0 MB/s
>> Apache Commons Codec...
>> encode 142.0 MB/s    decode 146.0 MB/s
>> encode 138.0 MB/s    decode 150.0 MB/s
>> {noformat}
>> I believe the main approach we can consider to improve performance is to 
>> avoid array copies at all costs.   MiGBase64 even counts the number of valid 
>> Base64 characters ahead of time on decode() to precalculate the result's 
>> size and avoid any array copying!
>> I suspect this will mean writing out separate execution paths for the String 
>> and byte[] methods, and keeping them out of the streaming logic, since the 
>> streaming logic is founded on array copy.
>> Unfortunately this means we will diminish internal reuse of the streaming 
>> implementation, but I think it's the only way to improve performance, if we 
>> want to.
>
> --
> This message is automatically generated by JIRA.
> If you think it was sent incorrectly, please contact your JIRA administrators
> For more information on JIRA, see: http://www.atlassian.com/software/jira

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
For additional commands, e-mail: dev-h...@commons.apache.org

Reply via email to