每秒解析千兆字节的 JSON 解析器开源,秒杀一大波解析器!

转自:infoQ

IT老五点评:解析速度每秒2.2GB,与目前的json解析相比,确实是质的飞越。

近日,https://GitHub 开源了一 JSON 解析器 simdjson,通过与其他常用解析器的对比实验,结果显示,simdjson 的解析速度达到 2.2GB/s,远远秒杀其他解析器,在下文中,我们将为大家详细介绍 simdjson。以下全文为 simdjson 在 GitHub 上的文档。

JSON 文档在互联网上无处不在,服务器花费大量时间来解析这些文档。我们希望在进行完全验证(包括字符编码)的同时尽可能使用常用的 SIMD 指令来加速 JSON 的解析。

一些性能结果

相比最先进的解析器(如 RapidJSON),我们可能使用四分之一或更少的指令,也只有 sajson 的一半。据我们所知,simdjson 是第一个在商用处理器上以每秒千兆字节速度运行的完全验证 JSON 解析器。

在 Skylake 处理器上,各种解析器解析 twitter.json 文件的速度(以 GB/s 为单位)如下所示。

基本要求

  • 通过 Visual Studio 2017 或更高版本支持 Linux、macOS 以及 Windows 等平台;
  • 带有 AVX2 的处理器;
  • 支持最近的 C++ 编译器(例如,GNU GCC 或 LLVM CLANG 或 Visual Studio 2017),我们假设是 C++ 17,GNU GCC 7 或更高版本,或者 LLVM 的 clang 6 或更高版本;
  • 提供一些基准测试脚本,可以是 bash 和其他常用的实用命令程序,但是是可选的。

许可

代码采用 Apache License 2.0 许可。

在 Windows 下,我们使用 windows/dirent_portable.h 文件(在我们的库代码之外)构建了一些工具:基于自由的 MIT 许可。

代码示例及工具提醒等更多译文详情见infoQ

英文原文:https://github.com/lemire/simdjson



发表评论

必填项已用*标注

4 + = 12