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