Havestman's main focus is on modularity, maintainability, scalability, and ease of use. In addition to these goals the architecture also manages to achieve very high performance standards, making it one of the fastest XML processors available.
Havestmans XML processor is up to 5 times as fast as MSXML when loading a document, and up too 10 times faster when walking the object model. Its performance is second only to FastXML. Both FastXML and MSXML are Win32 only implementations, Harvestman is platform agnostic.
It follows that Harvestman is also faster than Apache XML (Xerces) and other Open Source Java implementations due primarily to the speed of C++.
It should also be noted that unlike FastXML which is a highly performance tuned implementation (some of which is written in Assembler language), Harvestman has not been optimised for performance. These figures are literally hot of the press and would be expected to improove as development stabalises.
These performance tests are based on the Inside MSXML Performance article.
Loading an XML document
The documents are XML versions of;
As you can see Harvestman actually outperforms FastXML on some documents. During the benchmark process Harvestman XML was compiled as a single threaded executable (92 KB) with validation disabled. Turning on XML validation adds approximately 10 ms to the processing time.
Walking XML object model
These are the results of walking the complete XML tree via DOM (including all element, attributes and text nodes).
The 0 ms time (Northiwind.xml) is not a mistake, these benchmarks were done using a millisecond timmer which is too inacurate to report the fraction of a millisecond that it took Harvestman to walk the object model.
All benchamarks were performed on a Dell Inspiron 1Ghz Laptop with 256MB of RAM, under Win32.