[
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