james-mime4j-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Oleg Kalnichevski <ol...@apache.org>
Subject Re: QuotedPrintable codec refactoring
Date Thu, 24 Dec 2009 17:39:27 GMT
Oleg Kalnichevski wrote:
> Oleg Kalnichevski wrote:
>> Folks
>>
>> I am currently working on refactoring QuotedPrintable codecs to 
>> address MIME4J-103 and MIME4J-143. I also would like to look into 
>> possibility of eliminating intermediate content buffering in 
>> Base64InputStream and removal of ByteQueue and UnboundedFifoByteBuffer 
>> classes
>>
>> If I hear no objections, I'll be committing my changes directly to the 
>> trunk. Please complain loudly if that is not ok. If you prefer 
>> review-then-commit approach I could commit my changes to a private 
>> branch first.
>>
>> Oleg
>>
> 
> Just committed the first round of changes. I am already seeing ~250% 
> performance improvement. More to come.
> 
> --- before the refactoring ---
> 41262 ms
> 104857600 bytes
> 2.4235373951820076 mb/sec
> 
> 
> --- after the refactoring ---
> 15600 ms
> 104857600 bytes
> 6.410256410256411 mb/sec
> 
> Oleg
> 

I have completed the refactoring. I am seeing 600%-700% performance 
improvement over the previous implementation when parsing binary data 
streams. I believe improvement in performance for real-world, mostly 
ASCII messages should be pretty close to 10 fold.


--- before the refactoring ---
41262 ms
104857600 bytes
2.4235373951820076 mb/sec

--- after the refactoring ---
6405 ms
104857600 bytes
15.6128024980484 mb/sec

On the downside the code has become significantly more cryptic and 
difficult to understand. So, peer code review / more testing would be great.

Oleg

Mime
View raw message