반응형
참고: 이 조사의 목적은 JsonCpp로 적용되어 있는 기존의 Json library를 Nlohman/Json으로 바꾸자를 제안이 있어서 조사하였음을 참고해주시기 바랍니다. 그렇다고 다른 라이브러리에 대한 내용이 빠진 것은 아닙니다.
C/C++ Json Library Benchmark
- C/C++에는 41개의 오픈소스 Json parsing/generation libraries가 있습니다.
- JSON parsing/generation의 성능에 따라 server-side application에 영향을 줄 수 있습니다.
- Benchmark는 속도, 메모리, 코드사이즈를 기준으로 성능평가를 진행하였습니다.
- 자세한 Benchmarks와 Measurement의 기준은 아래의 링크를 참조하세요.
https://github.com/miloyip/nativejson-benchmark#benchmarks-and-measurements - Benchmarks를 진행한 Json libraries는 아래의 링크를 참조하세요.
https://github.com/miloyip/nativejson-benchmark#libraries
Result of Benchmarks
Analysis
- 하나의 라이브러리를 선정함에 있어 conformance, parsing time, stringify time, prettify time, Code size 등 다양한 요소를 고려하였습니다.
- Nlohmann/Json 와 JsonCpp를 비교한 결과, 대부분 유사하였으나 전반적인 성능, 코드사이즈, 속도 등을 고려할 때 Nlohmann/Json 라이브러리가 JsonCpp보다 우수하여 교체할 예정이다.
- JsonCpp to Nlohmann/Json와 관련된 글은 후속으로 올라올 글을 참고하시기 바랍니다.
참고
- [reddit] Recent Json library benchmarks?: https://www.reddit.com/r/cpp/comments/dhy3mx/recent_json_library_benchmarks/
- [github] Native JSON Benchmark: https://github.com/miloyip/nativejson-benchmark
- [github]nlohmann VS JsonCpp by C++17 #1633: https://github.com/nlohmann/json/issues/1633
- LibHunt - Library Benchmark: https://www.libhunt.com/compare-json-vs-jsoncpp?ref=compare
반응형
'Study: Software(SW) > SW: Language' 카테고리의 다른 글
[C++] 객체지향 프로그래밍: Effective Modern C++ 정리 (0) | 2022.06.27 |
---|---|
[C++] 객체지향 프로그래밍: static, explicit, mutable, default, delete... (0) | 2022.06.22 |
[C++] 병행 컴퓨팅: concurrency, thread... (0) | 2022.06.16 |
[C++] 초심자가 자주 하는 C++ 실수 (0) | 2022.06.15 |
[C++] 알고리즘 (#include <algorithm>): 있는 거 가져다 쓰자. (0) | 2022.06.15 |