[ http://issues.apache.org/jira/browse/IO-97?page=all ]
Holger Hoffstätte updated IO-97:
--------------------------------
Attachment: BAOS.patch
Attached patch for BAOS & BAOSTestCase that implements the previous
suggestions. Also in strict accordance to the JMM getSize() must be
synchronized; this is included.
All tests pass.
> Trivial performance improvements to ByteArrayOutputStream
> ---------------------------------------------------------
>
> Key: IO-97
> URL: http://issues.apache.org/jira/browse/IO-97
> Project: Commons IO
> Issue Type: Improvement
> Components: Streams/Writers
> Affects Versions: 1.2
> Reporter: Holger Hoffstätte
> Attachments: BAOS.patch
>
>
> Found a few trivial ways to improve performance in ByteArrayOutputStream by
> fast paths:
> - write(int) does not have to be synchronized
> - write(byte[]..) does not have to be synchronized as a whole either; it's
> enough to synchonize the code that follows the first paramter-checking
> if-then statement (so parameter checks can pop out quickly)
> - toByteArray() could just check if count == 0 and quickly return an empty
> static final byte[] instead of returning a new zero-sized one, doing useless
> System.arraycopy() etc.
> A somewhat more involved optimization would be to implement write(int)
> without the new byte[1] since just poking the byte into the right page is
> going to be much faster than what happens in write(byte[]..); I'll see if I
> can do a patch for that.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]