You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@cxf.apache.org by "Daniel Kulp (JIRA)" <ji...@apache.org> on 2008/11/17 20:33:44 UTC

[jira] Assigned: (CXF-1916) Mtom Performance - MimeBodyPartInputStream performs slow

     [ https://issues.apache.org/jira/browse/CXF-1916?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Daniel Kulp reassigned CXF-1916:
--------------------------------

    Assignee: Daniel Kulp

> Mtom Performance - MimeBodyPartInputStream performs slow
> --------------------------------------------------------
>
>                 Key: CXF-1916
>                 URL: https://issues.apache.org/jira/browse/CXF-1916
>             Project: CXF
>          Issue Type: Improvement
>          Components: Core
>    Affects Versions: 2.0.7
>         Environment: Windows XP, Java SE 1.6.0_06
>            Reporter: Mayank Mishra
>            Assignee: Daniel Kulp
>            Priority: Minor
>         Attachments: MimeBodyPartInputStream.java, TestMBPIS.java
>
>
> MimeBodyPartInputStream doesn't implements read(byte[]), hence it delegates it to parent InputStream class. InputStream's read(byte[]) runs over a for loop, eventually delegating to PushBackInputStream, which reads a single byte and performs boundary matching over that Byte.
> A simple test program which takes the time taken by the MimeBodyPartInputStream to read from a loaded buffer shows that MimeBodyPartInputStream takes ~1200-1400 ms to read a 12MB buffer. On the other hand, an InputStream takes around ~100-150ms to do so. I can understand that MimeBodyPartInputStream has the logic of detecting a probable boundary and it performs multiple if checks to do so, also it calls read and unread over PushBackInputStream. But counting the reads and unreads also, the time of MimeBodyPartInputStream looks poor.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.