我需要一个C++ JSON解析器和编写器.速度和可靠性非常关键,我不关心界面是否好看,如果它是基于Boost的,甚至C解析器都没问题(如果它比C++快得多).
如果有人对可用的JSON解析器的速度有经验,请指教.
Mil*_*Yip 82
rapidjson是一个C++ JSON解析器/生成器,旨在实现快速和小内存占用.
更新:
我创建了一个开源项目Native JSON基准测试,它在一致性和性能方面评估了29个(并且不断增加的)C/C++ JSON库.这应该是一个有用的参考.
Spu*_*d86 10
真的不知道他们如何比较速度,但第一个看起来像是缩放到非常大的JSON数据的正确想法,因为它一次只解析一小块,所以他们不需要保存所有数据内存一次(根据库/用例,可以更快或更慢)
https://github.com/quartzjer/js0n
最丑的界面可能,但你做的是什么.零分配.
http://zserge.com/jsmn.html 另一种零分配方法.
上面发布的解决方案都是动态内存分配,因此在某些时候将不可避免地最终变慢,这取决于数据结构 - 并且包含在像嵌入式系统这样的堆约束环境中将是危险的.
这里有vjson,rapidjson和sajson的基准:http://chadaustin.me/2013/01/json-parser-benchmarking/ 如果你对这类事情感兴趣的话.
并回答你的"作家"问题的一部分,我怀疑你可以打败一个有效的
printf("{%s:%s}",name,value)
Run Code Online (Sandbox Code Playgroud)
使用任何库实现 - 假设你的printf/sprintf实现本身就是轻量级的.
编辑:实际上让我回过头来看,RapidJson只允许通过其MemoryPoolAllocator进行堆栈分配,并实际上将其作为其GenericReader的默认值.我还没有完成比较,但我希望它比这里列出的任何其他东西更强大.它也没有任何依赖关系,并且它不会抛出异常,这可能使它最终适合嵌入式.完全基于头的lib,因此易于包含在任何地方.
| 归档时间: |
|
| 查看次数: |
102436 次 |
| 最近记录: |