基于有限状态自动机实现高效xml/json解析器

本文介绍了在面临分布式计算中JSON和XML解析性能问题时,作者选择开发定制化的高效解析器。经过一个月的开发,作者实现了基于有限状态自动机的JSON和XML解析器,并结合高效的XPath解析器,构建了一个高性能的ESB产品。作者分享了设计的核心部分,包括解析器的状态机设计,强调实践加深了对编译理论的理解。
摘要由CSDN通过智能技术生成

分布式计算的广泛应用,使得浏览器与服务器之间,或者不同的服务器之间的(异构)应用程序之间对话的需求变得十分普遍。在这个背景下,JSON、xml被广泛采用,然而这些通用的数据结构的使用是需要付出昂贵的代价的,主要体现在对cpu资源和io资源的特殊需求上,包括对json/xml数据流的解析产生的计算需求,以及传输过程中tag标签所引起的额外数据输出开销,另外一方面,xml/json作为应用程序基础库,被使用的频率是非常高的,在高并发、高吞吐量情况下,所产生的额外开销是惊人的。

因此,如何选取高效的json/xml解析器,事关应用程序的整体性能。

本人过去开发经历中,使用过很多主流开源json/xml解析器,也曾经花费很长时间寻找高性能解析器,总体感觉是目前的常用解析器性能普遍不好,主要原因有为了符合相关规费,在通用性上考虑的太多,比如对xml namespace的支持等,这些都对解析器在解析过程中产生了一些额外的开销,包括计算上和内存使用上的开销;也有算法上的因素,各种开源的解析器仅开源了代码,并没有开源设计,造成开源的解析器代码比较难于理解。

两年前,发现实在是无法找到符合自己需求的解析器,所以终于下定决心定制开发一个满足特定需求的,尽量通用的最高效的解析器,终于,经过一个多月的开发、重构、调优,开发完成了自认为是最高效的json/xlm解析器,并与一个高效的开源xpath解析器融合起来,开发出一个非常好的“esb产品",完全配置化,速度性能超一流,完全胜过国外主流ESB产品。

吹牛的话不说了,今天喝了点酒,决定把解析器相关的一

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值