28 个 C/C++ 开源 JSON 程序库性能及标准符合程度评测

简介:

坊间有非常多的 C/C++ JSON 库,怎么选择是一个难题。

nativejson-benchmark应该是史上第一个评测了28个C/C++开源JSON程序库的开源项目,它评测了每个库是否符合 JSON 标准 (RFC7159, ECMA-404),并且在性能上测试了各个操作(如解析、生成)的耗时、内存用量等数据,甚至可执行文件的大小也有统计。

这个项目也希望能够通过互相学习借镜,提升现时或未来的 JSON 程序库品质。

由于每个评测也不能完全覆盖所有数据及软硬件组合,建议使用者可自行在所需的平台和数据下进行测试。

以下是 iMac (Corei5-3330S@2.70GHz) 及clang 6.1_1 64-bit下的部分结果,详情可访问这里。

符合标准程度(越高越好):


4277d56ff5021ee4f091043df5fc15782501454f

解析至DOM的时间(越低越好):


8bb30e8b0c43a160664dd4f7e5b77ba0251a2181

解析至DOM后的内存(越低越好):

<a href=https://yqfile.alicdn.com/8bb30e8b0c43a160664dd4f7e5b77ba0251a2181.png
" >

把DOM生成JSON的时间(越低越好):

把DOM生成含换行及缩进的JSON的时间(越低越好):


<a href=https://yqfile.alicdn.com/1761a1e7f1ac1b27b9dbf0b7cd7fc41953935176.png
" >

可执行文件(把JSON解析至DOM,然后统计JSON类型)的大小(越低越好):


<a href=https://yqfile.alicdn.com/690cba0f980c4a5b591f004d04f5c5146928c2ed.png" >

文章转载自 开源中国社区 [ http://www.oschina.net]
相关文章
|
C++
C++ 根据程序运行的时间和cpu频率来计算在另外的cpu上运行所花的时间
C++ 根据程序运行的时间和cpu频率来计算在另外的cpu上运行所花的时间
300 0
|
存储 程序员 编译器
简述 C、C++程序编译的内存分配情况
在C和C++程序编译过程中,内存被划分为几个区域进行分配:代码区存储常量和执行指令;全局/静态变量区存放全局变量及静态变量;栈区管理函数参数、局部变量等;堆区则用于动态分配内存,由程序员控制释放,共同支撑着程序运行时的数据存储与处理需求。
873 22
|
JSON 人工智能 API
程序调用大模型返回结构化输出(JSON)
本文介绍了如何使用讯飞星火大模型API,并通过Python封装实现结构化数据输出。首先,通过封装SparkAI类,实现了与讯飞星火API的交互,确保了调用的安全性和便捷性。接着,利用Pydantic库定义了数据模型`CalendarEvent`,确保从大模型获取的回答能够被正确解析成预设的结构化JSON格式,从而解决了大模型回答不规范的问题。示例代码展示了如何构造请求、接收并解析响应,最终输出结构化的活动信息。
2145 6
|
JSON JavaScript Java
在Java中处理JSON数据:Jackson与Gson库比较
本文介绍了JSON数据交换格式及其在Java中的应用,重点探讨了两个强大的JSON处理库——Jackson和Gson。文章详细讲解了Jackson库的核心功能,包括数据绑定、流式API和树模型,并通过示例演示了如何使用Jackson进行JSON解析和生成。最后,作者分享了一些实用的代码片段和使用技巧,帮助读者更好地理解和应用这些工具。
970 0
在Java中处理JSON数据:Jackson与Gson库比较
|
C++
【C++基础】程序流程结构详解
这篇文章详细介绍了C++中程序流程的三种基本结构:顺序结构、选择结构和循环结构,包括if语句、三目运算符、switch语句、while循环、do…while循环、for循环以及跳转语句break、continue和goto的使用和示例。
559 2
|
JSON 数据格式 C++
JSON(C++)
JSON(C++)
222 1
|
PHP C++ Python
右手坐标系,空间点绕轴旋转公式&程序(Python和C++程序)
右手坐标系,空间点绕轴旋转公式&程序(Python和C++程序)
1211 0
|
存储 JSON 测试技术
Python中最值得学习的第三方JSON库
Python中最值得学习的第三方JSON库
700 0
|
C++
c++学习笔记03 程序流程结构
C++学习笔记,主要介绍了程序流程结构,包括顺序结构、选择结构和循环结构。选择结构中详细解释了if语句、三目运算符和switch语句的用法和注意事项。循环结构部分则涵盖了while循环、do-while循环和for循环的语法和使用技巧。此外,还介绍了跳转语句,包括break、continue和goto语句的用途和用法。
287 0

热门文章

最新文章