A new article on java.sun.com posts detailed performance benchmarks of XML processing using SAX, DOM, and XSLT. The Java API for XML Processing (JAXP) was used as a standard interface to the different underlying implementations. The article makes an interesting read and is useful in helping developers decide about the best XML processing engine to use given the situation.
- Posted by: Vimal Kansal
- Posted on: March 12 2002 12:06 EST
This is available at http://developer.java.sun.com/developer/technicalArticles/xml/JavaTechandXML_part2/.
- SAX, DOM, XSLT Benchmarks Comparison with JAXP Posted by Jacky Chen on March 13 2002 03:25 EST
- SAX, DOM, XSLT Benchmarks Comparison with JAXP Posted by Andrzej Bialecki on March 13 2002 07:11 EST
- SAX, DOM, XSLT Benchmarks Comparison with JAXP Posted by T J on March 13 2002 10:03 EST
- SAX, DOM, XSLT Benchmarks Comparison with JAXP Posted by Alain Coetmeur on March 13 2002 11:16 EST
- SAX, DOM, XSLT Benchmarks Comparison with JAXP Posted by Tiberiu Fustos on March 13 2002 03:38 EST
- SAX vs DOM is a little misguided by Gene Kuznetsov on September 27 2003 13:59 EDT
I have compared the Xerces and Crimson before, the result is different from this test.
A lot depends on what parts of the transformation engine the benchmark excercises... I wouldn't go as far as saying that this benchmark is biased, but it is interesting that this article shows up after the recent, say, "differences of opinions" between Apache and Sun, and seems to indicate the Xerces/Xalan provide less "bang for the buck" than Crimson.
It is also important, I think, to understand the full functionality (not just JAXP) of each of the engines, and what they give to the developer...
And finally: where are the sources to the benchmark, so that you could check the results? Without seeing the stylesheets, it is impossible to say if the test case was fair... and consequently, you have to treat the results as any other closed benchmark results... i.e. as marketing.
jacky, "I have compared the Xerces and Crimson before, the result is different from this test. "
From the article:
"Thierry Violleau is a staff engineer at Sun Microsystems where he works on the J2EE BluePrints program. "
"Xerces 1.3.1 and 1.4.4 (for XML Schemas)"
and explicilty say that Xerces 2 is an effort to address footprint and performance problems.
this may be the explanation
Although not a "pure" XML player, the XSLT engine that comes with Caucho Resin is a top contender according to another third-party test (XSLTMark: http://www.datapower.com/XSLTMark/), having a performance 3 times better than Xalan. The parser is part of a very fast and reliable servlet engine (http://www.caucho.com).
XSLT performance is not just about the usual JAXP DOM vs. SAX debate. These are not streaming processors, so if you're doing XSLT -- it really won't matter whether it's DOM or SAX, the XML ends up getting parsed into some kind of DOM/tree structure. In any case, the striking thing is how little difference (2x in the biggest spread) the different engines make for this benchmark. There's just not that much leverage in using a different software engine.
For those interested in speeding up XML, take a look at DataPower's XA35 XML Accelerator, http://www.datapower.com.