I have been going through an exercise of tuning an app with Xalan, and wanted to pass along as an FYI what I did based on a vanilla 2.3.1 installation.
1) Moved to the nightly buid. Based on a suggestion by Scott Boag I moved to the nightly build. I saw much better memory usage and could much more easily move to XSLTc from Xalan./ 2) Mave use of the java extension namespace. Some common number, currency, data formatting was very specific to my application. I found that writing a java class and calling the extensions using java:myClass sped up the basic formatting as I do not require the general cases which XSL provided. However, this seems to make moving to XSLTc a bit harder. 3) Made use of the select attribute of <xsl:variable> instead of a nested <xsl:value-of>. This was well documented, and saved me a clone each time I looked up global variables. Since I was using them as global strings and numbers, this was a good gain. 4) Set the following system properties: "org.apache.xml.dtm.DTMManager","org.apache.xml.dtm.ref.DTMManagerDefault" "org.apache.xerces.xni.parser.XMLParserConfiguration","org.apache.xerces.par sers.StandardParserConfiguration" These properties, if not set, cause Xalan to load up the jars looking for the factory. This increased IO and did so withing sycnhronized methods. -- bk
