Benchmark JSON library performance in C/C++.
- A modern compiler or IDE supporting C11 and C++17.
- CMake 3.5+ for building this project.
- Git for interacting with the submodule in this repository.
Clone this repository and initialize submodules:
git clone https://github.com/ibireme/yyjson_benchmark.git
cd yyjson_benchmark
git submodule update --initBuild and run:
mkdir build
cd build
cmake ..
cmake --build . --config Release
./run_benchmark -o report.htmlIf you want to build with other compiler or IDE, try these commands:
# Clang for Linux/Unix:
cmake .. -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++
# Microsoft Visual Studio for Windows:
cmake .. -G "Visual Studio 16 2019" -A x64
cmake .. -G "Visual Studio 16 2019" -A Win32
# Xcode for macOS:
cmake .. -G Xcode
# Xcode for iOS:
cmake .. -G Xcode -DCMAKE_SYSTEM_NAME=iOSIf you want to build for arm64 device, you should add flag-DSIMDJSON_IMPLEMENTATION=arm64 for simdjson.
Benchmark reports with interactive charts (update 2020-12-12)
| Platform | CPU | Compiler | OS | Report |
|---|---|---|---|---|
| Intel NUC 8i5 | Core i5-8259U | msvc 2019 | Windows 10 2004 | Charts |
| Intel NUC 8i5 | Core i5-8259U | clang 10 | Ubuntu 20.04 | Charts |
| Intel NUC 8i5 | Core i5-8259U | gcc 9.3 | Ubuntu 20.04 | Charts |
| AWS EC2 c5a.large | AMD EPYC 7002 | gcc 9.3 | Ubuntu 20.04 | Charts |
| AWS EC2 t4g.medium | Graviton2 (ARM64) | gcc 9.3 | Ubuntu 20.04 | Charts |
| Apple iPhone 12 Pro | A14 (ARM64) | clang 12 | iOS 14 | Charts |
| File | Size | Format | Content | Info |
|---|---|---|---|---|
| 616.7KB | pretty | The most commonly used test data from MiliYip. | common | |
| twitterescaped | 549.2KB | minify | Same as twitter, with unicode escaped. | common |
| github_events | 63.6KB | pretty | GitHub event data from GitHub API. | common |
| canada | 2.1MB | minify | Contour of Canada border from MiloYip. | full-length double |
| citm_catalog | 1.6MB | pretty | A big benchmark file with indentation from RichardHightower | repeated integers and strings |
| lottie | 282.2KB | minify | Lottie animation data downloaded from LottieFiles | short string and number |
| gsoc-2018 | 3.2MB | pretty | GSoC Data of 2018. | long ASCII string |
| poet | 3.4MB | pretty | Poet data from chinese-poetry | long CJK string |
| fgo | 46.5MB | minify | Config data dumped from Japanese mobile game "Fate/Grand Order" | real-world large file |
| otfcc | 63.3MB | minify | OpenType data dumped from NotoSansJP-Regular.otf with otfcc | real-world large file |