Details
-
Bug
-
Status: Resolved
-
Major
-
Resolution: Fixed
-
1.2.1
-
None
-
None
-
JDK 1.5
Description
After noticing a performance bottleneck around creating new SAX parsers, I noticed that the code creates a new one from the factory each time.
Digging into the code, I discovered that the XMLUtils.java class has some static initialization to reuse parsers - cool - except the feature isn't in any documentation that I could find, and it is turned off by default.
Before starting Tomcat, I did an "export JAVA_OPTS=-Daxis.xml.reuseParsers=true", and got a 1.5-1.6 ms improvement, on average for each SOAP invocation.
That's a huge improvement, as far as I'm concerned.
Being slightly unfamiliar with commons-discovery, I couldn't figure out how to set this property except by using JVM-wide system properties. It would be great to have documentation on that too.
Of course, it would be neat if the default for this functionality was true, and the option was spurious, but I cannot tell immediately why that would be unsafe. Barring that, documentation is essential.