C ++最快的JSON读写器
我需要一个C ++ JSONparsing器和编写器。 速度和可靠性是非常关键的,我不在乎接口是否好,如果是基于Boost的,甚至C语言分析器都是好的(如果它比C ++快很多)。
如果有人有可用的JSONparsing器的速度的经验,请告知。
真的不知道他们是如何比较速度的,但是第一个看起来像是扩展到真正大JSON数据的正确思路,因为它一次只parsing一小块,所以他们不需要保存所有的数据内存一次(这可以更快或更慢取决于库/用例)
rapidjson是一个C ++ JSONparsing器/生成器,旨在实现快速和小内存占用。
有一个与YAJL和JsonCPP的性能比较 。
更新:
我创build了一个开源项目Native JSON基准testing ,评估29(和增加)的C / C ++ JSON库,在一致性和性能方面。 这应该是一个有用的参考。
https://github.com/quartzjer/js0n
最丑陋的界面可能,但是不要问你的问题。 零分配。
http://zserge.com/jsmn.html另一个零分配的方法。;
上面提到的解决scheme都是dynamic的内存分配,因此根据数据结构不可避免地会在某个时候变慢,而且在像embedded式系统这样的堆栈受限的环境中将是危险的。
vjson,rapidjson和sajson的基准在这里: http ://chadaustin.me/2013/01/json-parser-benchmarking/如果你对这样的事情感兴趣。
而要回答你的“作家”这个问题的一部分,我怀疑你可以打败一个有效的
printf("{%s:%s}",name,value)
用任何库实现 – 假设你的printf / sprintf实现本身是轻量级的。
编辑:实际上,让我把它放回去,RapidJson只允许通过它的MemoryPoolAllocator堆栈分配,实际上这是默认的GenericReader。 我没有做比较,但我希望它比这里列出的任何其他东西更强大。 它也没有任何依赖性,它不会抛出exception,可能使它最终适合embedded式。 完全基于头部的库,所以很容易包含在任何地方。