Woo!  Thanks Rich.  Looking forward to trying this out.

--Glen

Rich Scheuerle (JIRA) wrote:
     [ 
https://issues.apache.org/jira/browse/WSCOMMONS-179?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Rich Scheuerle resolved WSCOMMONS-179.
--------------------------------------

    Resolution: Fixed

Revision 528680

Attachment Processing is very slow...I have a patch that provides a big speedup
-------------------------------------------------------------------------------

                Key: WSCOMMONS-179
                URL: https://issues.apache.org/jira/browse/WSCOMMONS-179
            Project: WS-Commons
         Issue Type: Improvement
         Components: AXIOM
           Reporter: Rich Scheuerle
        Assigned To: Rich Scheuerle
        Attachments: ecblank.gif, graycol.gif, patch.txt, patch.txt, 
pic30745.gif


This patch "kills 2 slow birds with one stone".
---------------------------------------------
Slow Bird #1:  MIMEBodyPartInputStream uses single byte reads.
Solution:  The patch changes MIMEBodyPartInputStream to use byte[] reads.
---------------------------------------------
Slow Bird #2:  MIMEBodyPartInputStream looks for the boundary using a single 
byte scan.
Solution:  The root of the problem is that we don't have a utility to optimize 
scanning for bytes....now we do (ByteSearch).
I hoisted the byte scanning algorithm code out of BoundaryDelimittedInputStream 
and constructed an easy to use ByteSearch utility.
ByteSearch uses a sophisticated "byte skipping" algorithm, which avoids single 
byte scans.   Please look at this new utility.
The second part of the solution is to simply uses the ByteSearch to search for 
the boundary.  This simplification of design actually
cleans up the code AND produces much favorable performance.
-------------------------------------------------
Please review the changes.  I would like some feedback.
Follow-on: May consider re-writing ByteDelimittedInputStream to use the new 
ByteSearch code.


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to