啃论文俱乐部---一个C语言JSON解析库的基准评估
1、各种C语言JSON库的Benchmark比较
这是6年前的一个C语言JSON解析库的基准评估,我可以从这里面直观得看到数十种C语言解析器得性能
横向对比。
https://github.com/miloyip/nativejson-benchmark该基准测试(benchmark)评估了41个具有JSON解析/生成功能的开源C/C++库的性能。性能评估标准包括速度、内存和代码大小 。
Parsing Time(解析时间)
Parsing Memory(解析占用内存)
Stringify Time(序列化时间)
Prettify Time(修饰时间)
Code Size(代码大小)
Winner—RapidJSON
可以看到这份数据虽然是6年前的,但是依然把当时大多数JSON开源库进行了比较,其中从性能来看
RapidJSON 表现得非常优秀。
2、每秒解析千兆字节的JSON解析库—simdJSON
下图表示使用GNU GCC 10编译器在英特尔Skylake处理器(3.4 GHz)上解析各种文件的解析速度(以
GB/s为单位)。
下图可以看出simdjson不管解析小文件(300bytes)还是大文件(3MB),解析速度都能稳定在
2.5GB/s,保持稳定的千兆字节文件解析速度。
3、最快的C语言JSON解析库—YYJSON
YYJSON是一个基于C语言开发的JSON解析库,它利用了现代CPU的一些特点,从而将性能提高,并且在github上它也自称最快的C语言JSON库。
然而我们在simdJSON那也看到了,如果大多数JSON字段在编译时都是已知的,simdjson新的会更快。但是如果是JSON字段在编译时未知的情况,又会鹿死谁手呢?下图是用于测试的10个不同的大小和内容的JSON数据集。
性能展示
下面是关于 yyjson 用这个10个数据集在两个不同环境下与simdjson以及rapidjson的性能比较。
可以直观地看到 YYJSON 不管是解析速度还是序列化速度,都占有很大的优势。
https://github.com/ibireme/yyjson。
3、总结
虽然数年以前 rapidJSON 一度作为最优秀的C/C++的JSON库,但是近年来涌现的simdJSON以及YYJSON显然有了质的突破。所以在大多数JSON字段在编译时都是已知的情况下,最佳的JSON库就是simdJSON,否则YYJSON会是最佳选择。
相关文章
- 腾讯大举退出美团!
- 闲时读书思考—《浪潮之巅》
- 技术男的春天:小姐姐求助&暖男分析
- 【求职复盘】我是怎么做到面试一次就拿到offer的?
- 【年终总结】求职面试一定要扬长避短
- SVA学习|03. 断言“三步法”
- SVA学习|04.边沿敏感$rose、$fell、$stable用法
- SVA学习|05. 蕴含操作符
- NeurIPS 2022最佳论文重磅公布!斯坦福大学成功「卫冕」,李飞飞高徒榜上有名
- LSTM之父再次约战LeCun:你那5点「创新」都是抄我的!却惨遭「已读不回」
- C罗没有进球!AI黑科技识破「上帝之发」,但葡萄牙赢了
- 积木式深度学习的正确玩法!新加坡国立大学发布全新迁移学习范式DeRy,把知识迁移玩成活字印刷|NeurIPS 2022
- 2008年,江泽民同志发表论文指出:发展智能化、机器学习会大有作为
- 斯坦福校长也玩「图片误用」?Nature、Science多文涉嫌PS,校方正式展开调查
- 斯坦福校长被曝学术不端,正接受校方调查!11篇论文「篡改图片」涉嫌造假
- 谷歌机器人迈入「交互语言」新纪元!开放命令正确率高达93.5%,开源数据量提升十倍
- Adobe迎来40岁生日!创意界巨人正式开卖AI画作
- 博彩公司遭黑客攻击,67000账户被窃,损失超30万!公司称登录信息由第三方泄露
- 前端食堂技术周刊第 65 期:2022 Vue 年终总结、2022 HTTP 状态、12 月登陆 Web 平台的新功能
- 2022 ACM杰出会员揭榜:清华黄隆波、刘世霞,北大郝丹、刘譞哲等23位华人学者入选!