XML SAX解析支持,rapidxml和pugixml性能分析

rapidxml是目前我所用过最快的解析器, 久经考验,一经作者写成,沿用至今, 并被boost用作property_tree
然而遗憾的是不支持SAX解析, SAX解析的有点是无额外内存占用,速度比DOM更快。

于是本人闲时站在巨人的肩膀上增加了rapidxml SAX的支持, 详见: https://github.com/halx99/xmldrv3

以下是更新内容: 2020.1.19日
pugixml的诞生使xml的解析性能更进一步,经过使用和性能对比发现, pugixml比rapidxml稍快一些,通过源码可以知道这两个库都是侵入式解析,复用原始buffer,也就是解析过程中除了dom树和数值类型,字符串不会分配新的内存,这一思路极大提升了解析速度,后来的rapidjson也是借鉴了这一思路。

经过进一步研究pigixml代码发现,pugixml的解析过程免去了递归,这也许是pugixml比rapidxml性能稍好的主要原因了。笔者曾经看过c++ stl的map红黑树查询实现,也是一个循环搞定,完全无递归

同样, pigixml本身也不支持SAX, 于是我最近对SAX做了进一步整理: https://github.com/simdsoft/xsxml
dom解析库请使用: https://github.com/zeux/pugixml替代

猜你喜欢

转载自blog.csdn.net/xyzzf/article/details/52276944