Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-6922044

XSLTC performance regression in 1.6.0_18

XMLWordPrintable

    • h1200
    • x86
    • solaris_8, windows_xp
    • Verified

        FULL PRODUCT VERSION :
        java version "1.6.0_18"
        Java(TM) SE Runtime Environment (build 1.6.0_18-b07)
        Java HotSpot(TM) 64-Bit Server VM (build 16.0-b13, mixed mode)

        ADDITIONAL OS VERSION INFORMATION :
        Microsoft Windows [Version 6.1.7600]

        A DESCRIPTION OF THE PROBLEM :
        A change to com.sun.org.apache.xalan.internal.xsltc.runtime.AbstractTranslet.java in 1.6.0_18 appears to cause a performance regression when the output encoding is US-ASCII.

        I noticed this when running ant junitreport tasks with output on file servers -- the time to process junit output jumped from a few seconds to tens of minutes. I tracked it down to com.sun.org.apache.xml.internal.serializer.WriterToASCI being initialized with a non-buffered FileOutputStream.

        As far as I can tell the source of this problem is a change on line 554 of AbstractTranslet.java:

        factory.setWriter(new FileWriter(filename, append));

        became

        factory.setOutputStream(new FileOutputStream(filename, append));

        This change from a Writer to an OutputStream triggers com.sun.org.apache.xml.internal.serializer.ToStream to create a WriterToAsci on top of the unbuffered stream.

        Subsequent writes of one byte at a time to this unbuffered stream cause lots of network traffic, but not much progress ;-)


        REPRODUCIBILITY :
        This bug can be reproduced always.

        Release Regression From : 6u17
        The above release value was the last known release where this
        bug was not reproducible. Since then there has been a regression.

              joehw Joe Wang
              ndcosta Nelson Dcosta (Inactive)
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

                Created:
                Updated:
                Resolved:
                Imported:
                Indexed: