bytedance / bytedance/sonic-cpp
sonic-cpp的SIMD加速不一定比架构设计、算法优化和微观调优的性能高,可以和LJSON性能对比
- Dominant language
- C++
- Stars
- 976
- Forks
- 127
- PR merge metrics
- No merged PRs in 30d
Description
sonic-cpp解析和序列化干不赢yyjson,大概率也干不赢 [LJSON](https://github.com/lengjingzju/json) 的复用模式(模式3)
* LJSON使用复用模式生成可编辑DOM,**速度可比yyjson快约100%,内存占用只有yyjson的约50%**
* LJSON的文件流模式支持**真流式**解析和序列化(边读文件边解析,边序列化边写文件)
* LJSON使用C99,**没有使用手动SIMD等依赖具体CPU架构的优化**,Linux-GCC/CLANG 和 Windows-MSVC编译都能支持(最初还运行在平头哥的CSKY-ECOS上)
以下是 Intel i7-1260P& OS: Ubuntu 20.04 (VMWare) 测试结果(第一个测试1000x表示放大1000倍(测试1次), 第2个测试的参数1000表示重复测试1000次),LJSON复用模式解析达到了**2.5GB/s**的解析速度。

LJSON使用自研数值和字符串转换引擎
* 浮点 ↔ 字符串转换性能远超标准库算法和小超主流算法(sprintf、grisu2、dragonbox)
* float64精度设定为16位十进制数字,边界处理追求最短表示而非机械的偶数舍入
Contributor guide
Assessment
This issue has not been assessed yet.