DrawingProcess
드프 DrawingProcess
DrawingProcess
전체 방문자
오늘
어제
«   2025/06   »
일 월 화 수 목 금 토
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
  • 분류 전체보기 (965) N
    • Profile & Branding (23) N
      • Career (16) N
    • IT Trends (254)
      • Conference, Faire (Experien.. (31)
      • News (187)
      • Youtube (19)
      • TED (8)
      • Web Page (2)
      • IT: Etc... (6)
    • Contents (97)
      • Book (66)
      • Lecture (31)
    • Project Process (94)
      • Ideation (0)
      • Study Report (34)
      • Challenge & Award (22)
      • 1Day1Process (5)
      • Making (5)
      • KRC-FTC (Team TC(5031, 5048.. (10)
      • GCP (GlobalCitizenProject) (15)
    • Study: ComputerScience(CS) (72)
      • CS: Basic (9)
      • CS: Database(SQL) (5)
      • CS: Network (14)
      • CS: OperatingSystem (3)
      • CS: Linux (39)
      • CS: Etc... (2)
    • Study: Software(SW) (95)
      • SW: Language (29)
      • SW: Algorithms (1)
      • SW: DataStructure & DesignP.. (1)
      • SW: Opensource (15)
      • SW: Error Bug Fix (43)
      • SW: Etc... (6)
    • Study: Artificial Intellige.. (149)
      • AI: Research (1)
      • AI: 2D Vision(Det, Seg, Tra.. (35)
      • AI: 3D Vision (70)
      • AI: MultiModal (3)
      • AI: SLAM (0)
      • AI: Light Weight(LW) (3)
      • AI: Data Pipeline (7)
      • AI: Machine Learning(ML) (1)
    • Study: Robotics(Robot) (33)
      • Robot: ROS(Robot Operating .. (9)
      • Robot: Positioning (8)
      • Robot: Planning & Control (7)
    • Study: DeveloperTools(DevTo.. (83)
      • DevTool: Git (12)
      • DevTool: CMake (13)
      • DevTool: NoSQL(Elastic, Mon.. (25)
      • DevTool: Container (17)
      • DevTool: IDE (11)
      • DevTool: CloudComputing (4)
    • 인생을 살면서 (64)
      • 나의 취미들 (7)
      • 나의 생각들 (42)
      • 여행을 떠나자~ (10)
      • 분기별 회고 (5)

개발자 명언

“ 매주 목요일마다 당신이 항상 하던대로 신발끈을 묶으면 신발이 폭발한다고 생각해보라.
컴퓨터를 사용할 때는 이런 일이 항상 일어나는데도 아무도 불평할 생각을 안 한다. ”

- Jef Raskin

맥의 아버지 - 애플컴퓨터의 매킨토시 프로젝트를 주도

인기 글

최근 글

최근 댓글

티스토리

hELLO · Designed By 정상우.
DrawingProcess

드프 DrawingProcess

[C++] C++ Json 라이브러리 성능비교(벤치마크): JsonCpp, Nlohmann/json...
Study: Software(SW)/SW: Language

[C++] C++ Json 라이브러리 성능비교(벤치마크): JsonCpp, Nlohmann/json...

2022. 6. 16. 21:17
반응형
참고: 이 조사의 목적은 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

https://rawgit.com/miloyip/nativejson-benchmark/master/sample/conformance.html

  • Detail: https://rawgit.com/miloyip/nativejson-benchmark/master/sample/conformance.html

  • Detail: https://rawgit.com/miloyip/nativejson-benchmark/master/sample/performance_Corei7-4980HQ@2.80GHz_mac64_clang7.0.html#1.%20Parse

https://rawgit.com/miloyip/nativejson-benchmark/master/sample/performance_Corei7-4980HQ@2.80GHz_mac64_clang7.0.html#1.%20Parse

  • Detail: https://rawgit.com/miloyip/nativejson-benchmark/master/sample/performance_Corei7-4980HQ@2.80GHz_mac64_clang7.0.html#1.%20Parse

  • Detail: https://rawgit.com/miloyip/nativejson-benchmark/master/sample/performance_Corei7-4980HQ@2.80GHz_mac64_clang7.0.html#2.%20Stringify

  • Detail: https://rawgit.com/miloyip/nativejson-benchmark/master/sample/performance_Corei7-4980HQ@2.80GHz_mac64_clang7.0.html#2.%20Prettify

  • Detail: https://rawgit.com/miloyip/nativejson-benchmark/master/sample/performance_Corei7-4980HQ@2.80GHz_mac64_clang7.0.html#7.%20Code%20size

 

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
    'Study: Software(SW)/SW: Language' 카테고리의 다른 글
    • [C++] 객체지향 프로그래밍: Effective Modern C++ 정리
    • [C++] 객체지향 프로그래밍: static, explicit, mutable, default, delete...
    • [C++] 병행 컴퓨팅: concurrency, thread...
    • [C++] 초심자가 자주 하는 C++ 실수
    DrawingProcess
    DrawingProcess
    과정을 그리자!

    티스토리툴바