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