You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@xalan.apache.org by bu...@apache.org on 2003/10/16 13:56:06 UTC
DO NOT REPLY [Bug 23863] New: -
redirect uses unbuffered FileOutputStream -> bad performance when accessing networked Windows Shares
DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
<http://nagoya.apache.org/bugzilla/show_bug.cgi?id=23863>.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND
INSERTED IN THE BUG DATABASE.
http://nagoya.apache.org/bugzilla/show_bug.cgi?id=23863
redirect uses unbuffered FileOutputStream -> bad performance when accessing networked Windows Shares
Summary: redirect uses unbuffered FileOutputStream -> bad
performance when accessing networked Windows Shares
Product: XalanJ2
Version: 2.5Dx
Platform: PC
OS/Version: Windows XP
Status: NEW
Severity: Normal
Priority: Other
Component: org.apache.xalan.lib.Redirect
AssignedTo: xalan-dev@xml.apache.org
ReportedBy: roth@visualclick.de
The code for the redirect extension creates an unbuffered FileOutputStream. This results in very
bad performance when accessing networked Windows shares.
For a test, I patched the source in org.apache.xalan.lib.Redirect.java in line 449 to read:
transformer.createSerializationHandler(new StreamResult( new java.io.BufferedOutputStream(
ostream )), format);
i.e. I wrapped the FileOutputStream with a BufferedOutputStream.
An example I conducted resulted in the following performance figures:
Xalan 2.5.1 (no patch): 33s
Xalan 2.5.1 (w/ my patch applied): 2s
In these cases, the destination for redirect was a networked Windows share, not a local drive. The
wrapping seems to dramatically decrease communication overhead with the networked destination
machine.
I suggest wrapping FileOutputStream()s created by redirect and possible other locations in Xalan's
code by a BufferedXXX() implementation to improve performance over networks.
[Disclaimer: The patch above was only done here locally to investigate the issue, it is not intended
to be the final patch applied as I am not fluent with Xalan internal code structure and flow path.]
-- Christian