[ 
https://issues.apache.org/jira/browse/FILEUPLOAD-207?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13439366#comment-13439366
 ] 

frank commented on FILEUPLOAD-207:
----------------------------------

BufferedOutputStream flush data into disk only when buffer length is reached, 
while FileOutputStream will flush to disk for any length of bytes, I thought 
BufferedOutputStream reduced the IO write frequency. quota code of 
BufferedOutputStream:
    public synchronized void write(byte b[], int off, int len) throws 
IOException {
        if (len >= buf.length) {
            /* If the request length exceeds the size of the output buffer,
               flush the output buffer and then write the data directly.
               In this way buffered streams will cascade harmlessly. */
            flushBuffer();
            out.write(b, off, len);
            return;
        }
        if (len > buf.length - count) {
            flushBuffer();
        }
        System.arraycopy(b, off, buf, count, len);
        count += len;
    }
                
> enhance file write performance
> ------------------------------
>
>                 Key: FILEUPLOAD-207
>                 URL: https://issues.apache.org/jira/browse/FILEUPLOAD-207
>             Project: Commons FileUpload
>          Issue Type: Improvement
>    Affects Versions: 1.2.2
>         Environment: CentOS 5.5
>            Reporter: frank
>              Labels: patch
>             Fix For: 1.3
>
>         Attachments: DiskFileItem.java
>
>   Original Estimate: 0.5h
>  Remaining Estimate: 0.5h
>
> Class: org.apache.commons.fileupload.disk.DiskFileItem
> Method: write(File file)
> Line: 422
> Modification:
> decorates the FileOutputStream with BufferedOutputStream (line: 424~426)
> Method: get()
> Line: 331
> Modification: 
> decorates the FileInputStream with BufferedInputStream (line: 340~342)
> for method write, this change will have 2 times of speed-up.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to