VTD-XML Benchmark Report for Version 2.3
Since its initial release, VTD-XML has undergone several rounds of improvement. This report show how well VTD-XML fares against some of the well-known XML parsers. The old version of the benchmark can be found here.
For DOM and VTD-XML, the benchmark programs generate hierarchical structures.
For SAX and PULL parsers, the benchmark programs scan over the entire documents without any processing logic.
Notes on Performance Tuning and Performance Measurement
For performance numbers, all benchmark programs first loop thru the parsing code a number of iterations so the server JVM compile them into native code to obtain optimal performance, before the real measurement of parsing throughput and latency starts.
It should be noted that comparing VTD-XML with SAX or PULL is not really fair comparisons: VTD-XML allows random access; SAX and Pull are forward only.
A wide selection of XML files, ranging from very small (1k) to big (15MB) are chosen and grouped into small (<30k), medium sized (<3M), and big.
Benchmark programs for measuring parsing performance can be downloaded below:
Benchmark programs for measuring memory usage can be downloaded below
Benchmark programs for doing node iteration can be downloaded below
XML files used in the benchmark can be downloaded here.
Because SAX and Pull do not build data structures in memory, so the meaningful comparison is between DOM and VTD-XML. To that end, we benchmark the multiplying factor which is the ratio between the memory usage and the document size.
The goal for this part is to benchmark the performance of the XML parsers visiting every single node after finishing building the hierarchical structure.