XML Benchmark Results 10.10.2009
Projects Main Page Get PDF (better formated)
Intel Core Duo E6300 (1.86GHz, 2MB L2 cache)
Fujitsu-Siemens D3217-A, Intel Q965 chipset (ICH8R, 1066 Mhz bus)
4 GB DDR2-800 Memory
Mirroring raid of 2 x Seagate Baracuda 7200.10 ST3500630AS (500GB)
Gentoo Linux 64bit, Single User Mode
GNU C Library 2.6.1
GNU C Compiler 4.2.4
Java SE Runtime Environment 1.6.0_07 (64 bit)
Expat 2.0.1, Sablotron 1.0.3, Arabica Oct2008
Gnome LibXML 2.7.4, GDome 0.8.1, LibXSLT 1.1.24, XMLSec 1.2.11
Apache Xerces/C++ 3.0.1, Xalan/C++ 1.11 (pre), XML Security/C++ 1.5.1
Apache Xerces/Java 2.9.1, Xalan/Java 2.7.1, XML Security/Java 1.4.2
Trolltech QT 4.5.2
Intel XML Software Suite for C++ 1.2
Intel XML Software Suite for Java 1.2
Oracle XML Developers Kit for C 10.2.0.2.0
Oracle XML Developers Kit for Java 10.2.0.2.0
Parabix, SVN 22.09.2009
DMD 1.041 / Tango 0.99.8
DMD 2.032 / Phobos 2.032
RDF - A big RDF document from DMoz.org project describing various web resources. It includes nodes from few namespaces and has constant depth of 3 levels.
XMLGen - Scalable data generator producing very simple XML content: 4 levels of depth, no namespaces, very limited amount of different XML nodes.
XMark - Another scalable data generator provided by XMark Project . It produces XML documents modeling an auction website. The XML have slightly more complicated structure: up to 8 levels of depth, higher variety of XML elements. The namespaces are still not used.
OPCGen - A data generator emulating behavior of OPC XML-DA server . The SOAP messages used in data exchange are generated. Size of some of these messages is scaled by scaling parameter, others are staying constant. The nodes and attributes are belonging to 3 different namespaces. The depth of generated XML is depending on the message type and varies from 1 to 5.
In all benchmarks lower values are better!
Performance Index computation: The time required to process data is measured in all tests. This time, then, is divided by the time required by a reference implementation to accomplish the same task on the same data. The resulting value is called performance index and shown on performance charts below. To prevent poisoning of overall result by a single failed test, the maximal value of the performance index for a single run is limited by 10 (and 15 for DOM parsing benchmark). The libraries from Gnome XML Toolkit (LibXML, LibXSLT, and XMLSec) are used as the reference implementations.
Stream (SAX/PULL) Parsing Benchmark
Random Access (DOM) Parsing Benchmark
Parsing+Processing Benchmark, XMLGen 256KB
Parsing+Processing Benchmark, XMark 4MB
Parsing in Deferred Mode
If deferred Mode is used, Xerces/J and Intel/J postpone creation of most DOM objects until they are requested using DOM API.
Deferred Mode Evaluation, Xerces-J
Parsing vs. Parsing + Processing
Deferred Mode Evaluation, Intel-J
Parsing vs. Parsing + Processing
ASMXML is a very basic parser implemented in pure assembler language.
Benchmark of LibXML Bindings
LibXML Bindings, including cl-libxml
DOM Manipulations Benchmark
XSD Validation Benchmark
XSL Transformation Benchmark
XML Security Benchmark
Memory Usage: Stream Parsing
Memory Usage: DOM Parsing
Memory Usage: Processing 256 KB File
Memory Usage: Processing 8 MB File