On Wed, Jan 30, 2013 at 3:35 PM, sebb <seb...@gmail.com> wrote:
> The Fix version should only be added when the issue has been fixed,
> and should indicate the release in which the fix is available
>

Ah, thanks for the tip!  I won't make that mistake again.

Since it was available to edit during the 'Create Issue' form on JIRA,
I thought maybe it could be for intended version.

yours,

Julius



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



-- 
yours,

Julius Davies
604-222-3310 (Home)

$ sudo apt-get install cowsay
$ echo "Moo." | cowsay | cowsay -n | cowsay -n
http://juliusdavies.ca/cowsay/

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

Reply via email to