[ https://issues.apache.org/jira/browse/XALANJ-2368?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12474823 ]
Brian Minchau commented on XALANJ-2368: --------------------------------------- A serializer creates a new WriterToUTF8Buffered object each time an OutputStream is set, and this object has the buffers that Michael refers to. The simplest fix is to re-use a WriterToUTF8Buffered object rather than have the caller own the buffers. One would add a setOutputStream(OutputStream os) method to WriterToUTF8Buffered, and when called the method would not only set the output stream but also set the internal "count" to zero. This means that the OutputStream held by a WriterToUTF8Buffered object no longer has a "final" reference, but this isn't so bad as that object is written to very infrequently, only once the internal buffer is full of characters is full, or at the end when the writer is flushed. This leaves the WriterToUTF8Buffered object in full control of its internal ugly buffers. I'll be attaching a patch soon. > Performance: UTF-8 writer byte[] and char[] buffers should be reused > -------------------------------------------------------------------- > > Key: XALANJ-2368 > URL: https://issues.apache.org/jira/browse/XALANJ-2368 > Project: XalanJ2 > Issue Type: Bug > Components: Serialization > Affects Versions: The Latest Development Code > Reporter: Michael Glavassevich > Attachments: SerializePerfTest.java, utf8-writer-patch.txt > > > Every time a UTF-8 encoded document is serialized, a new instance of > WriterToUTF8Buffered is created which in turn creates a 16 KB byte buffer and > a 10 KB char buffer. When the serializer is used to serialize small (around > 1 KB) documents the overhead of creating and garbage collecting these buffers > is extremely large. Reusing the buffers would significantly improve the > performance. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online. --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]