XML Benchmark Results 20.01.2009
Projects Main Page
Get PDF (Mach better formated)
Benchmark Setup
Hardware
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)
Software
Gentoo Linux 64bit, Single User Mode
Kernel 2.6.25
GNU C Library 2.6.1
GNU C Compiler 4.2.4
Java SE Runtime Environment 1.6.0_07 (64 bit)
Libraries
Expat 2.0.1, Sablotron 1.0.3, Arabica Oct2008
Gnome LibXML 2.7.3, GDome 0.8.1, LibXSLT 1.1.24, XMLSec 1.2.11
Apache Xerces/C++ 3.0, Xalan/C++ 1.10, XML Security/C++ 1.4.0
Apache Xerces/Java 2.9.1, Xalan/Java 2.7.1, XML Security/Java 1.4.2
Trolltech QT 4.4.3
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
XML Files
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.
Performance Indexes
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.
In all benchmarks lower value is better!
SAX Parsing Benchmark

DOM Parsing Benchmark

DOM Manipulations Benchmark

XSD Validation Benchmark

XSL Transformation Benchmark

XML Security Benchmark

Memory Usage: SAX Parsing

Memory Usage: DOM Parsing

Memory Usage: Processing 256 KB File
|
|
|
![]() |
Memory Usage: Processing 8 MB File
|
|
|
|
Overall Charts


Compiler Benchmark

Encodings Benchmark

ASMXML Performance
ASMXML is a very basic parser implemented in pure assembler language.

Parsing in Deferred Mode
If Deffered Mode is used Xerces/J and Intel/J postpone creation of most DOM objects until they are requested using DOM API.
