From 6c5afb3ae19c21133a03cb889614d3d59d2f6127 Mon Sep 17 00:00:00 2001
From: "arseny.kapoulkine"
This table summarizes the comparison in terms of time and memory consumption between pugixml and +other parsers. For DOM parsers (all, except Expat, irrXML and SAX parser of XercesC), the process is +as follows:
+ +For SAX parsers, the parse step is skipped (hence the N/A in relevant table cells), structure is +filled during 'walk' step.
+ +For all parsers, 'total time' column means total time spent on the whole process, 'total allocs' - +total allocation count, 'total memory' - peak memory consumption for the whole process.
+ +The tests were performed on a 1 Mb XML file with a small amount of text. They were compiled with +Microsoft Visual C++ 8.0 (2005) compiler in Release mode, with checked iterators/secure STL turned +off. The test system is AMD Sempron 2500+, 512 Mb RAM.
+ +parser | +parse time | parse allocs | parse memory | +walk time | walk allocs | +total time | total allocs | total memory |
---|---|---|---|---|---|---|---|---|
irrXML | +N/A | N/A | N/A | +352 Mclocks | 697 245 | +356 Mclocks | 697 284 | 906 kb |
Expat | +N/A | N/A | N/A | +97 Mclocks | 19 | +97 Mclocks | 23 | 1028 kb |
TinyXML | +168 Mclocks | 50 163 | 5447 kb | +37 Mclocks | 0 | +242 Mclocks | 50 163 | 5447 kb |
PugXML | +100 Mclocks | 106 597 | 2747 kb | +38 Mclocks | 0 | +206 Mclocks | 131 677 | 2855 kb |
XercesC SAX | +N/A | N/A | N/A | +411 Mclocks | 70 380 | +411 Mclocks | 70 495 | 243 kb |
XercesC DOM | +300 Mclocks | 30 491 | 9251 kb | +65 Mclocks | 1 | +367 Mclocks | 30 492 | 9251 kb |
pugixml | +17 Mclocks | 40 | 2154 kb | +14 Mclocks | 0 | +32 Mclocks | 40 | 2154 kb |
pugixml (test of non-destructive parsing) | +12 Mclocks | 51 | 1632 kb | +21 Mclocks | 0 | +34 Mclocks | 51 | 1632 kb |
Note, that non-destructive parsing mode was just a test and is not yet in pugixml.
+ +