MFC 기반 프로젝트에서 json을 파싱 하기 위해 가장 적절한 json 라이브러리를 알아보았습니다.
그 결과 simdjson이 가장 최신기술을 활용하여 개발된 것 같아서 프로젝트에 적용해 보았습니다.
참고로 32비트 프로젝트에서는 사용이 불가능합니다.
1. simdjson?
SIMD 기술을 적용하여 json 파서 중 가장 빠른 파서라고 하며 관련 논문도 찾아볼 수 있습니다.
SIMD는 Single Instruction Multiple Data의 줄임말로서 병렬 컴퓨팅의 한 종류입니다. 하나의 명령어로 여러 개의 값을 동시에 계산하는 기술입니다. 하나의 명령어를 수행하는 데 걸리는 시간을 줄일 수 있기 때문에 연산이 많은 작업에서 성능을 향상할 수 있습니다.
https://github.com/simdjson/simdjson에서 simdjson.h 파일과 simdjson.cpp 파일 단 2개만 다운로드하여
프로젝트에 포함시켜 컴파일하면 끝입니다.
역시 똑똑한 박사들이 개발한 거라 그런지 사용법도 간단하네요.
아래와 같이 프로젝트에 헤더파일과 cpp파일만 추가 후 빌드합니다.
단, 최신 c++17로 작성되어 있으므로 기본옵션 c++14를 c++17 이상 상위 버전으로 변경해 주어야 합니다.
예제 json 파일을 디스크에 저장 후 테스트코드를 넣고 실행하여 결과값 100이 나오면 제대로 설치가 된 것입니다.
이상으로 c++로 개발되어 c/c++ 프로젝트에 활용할 수 있는 json 라이브러리인 simdjson을 프로젝트에 적용하는 방법에 대해 알아보았습니다.
'프로그래밍 > C | C++' 카테고리의 다른 글
[MFC] C++ MiniDumpWriteDump (0) | 2022.08.12 |
---|---|
[MFC] 로그(Log) 출력 Logger (0) | 2022.08.12 |
[MFC] TA-LIB 설치 (0) | 2022.08.01 |
엑셀을 활용한 C코드 생성 (0) | 2020.11.12 |
QEMU를 이용한 하드웨어 모델링 (0) | 2020.08.15 |