Snail is an attempt to build the fastest and most memory-efficient C# XML parser possible. For comparable C++ projects, see pugixml, AsmXml, RapidXml, VTD-XML.
Snail is an efficient pull parser as well as a DOM generator, with extremely fast sequential and random navigation. I also seem to have unintentionally re-implemented many of the underlying mechanisms of VTD-XML, such as token descriptors and location caches.
I am still working on improving the performance of attribute parsing, DOM generation, and indexing. At this point, I am not doing much testing on files larger than 100MB, and I still have a number of features and API improvements to implement.
Current pull-parser performance:
420M characters/s
5.4 cycles/character
Testing files include:
- XMark
- KJV (usfx, osis)
- GCIDE_XML
- pugixml
- religion.200
- XHTML
- VCPROJ
- SOAP