rapidxml和pugixml性能分析以及增加SAX解析支持

rapidxml

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

SAX解析支持

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

pugixml

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

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

进一步整理的SAX解析

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

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值