병렬 json 파서를 만들어봤습니다.
글쓴이: DongWook Lee@Google / 작성시간: 토, 2022/10/08 - 4:39오후
안녕하세요
파서를 만드는 것에 관심이 많은 1인입니다.
simdjson과 multi-thread를 이용해서 병렬 파서를 어느 정도 만들었습니다.
여러모로 많이 부족하긴 하지만 ㅠㅠ
링크에서 다운받으신후에 claujson.h, claujson.lib를 비주얼스튜디오2022등
(정확하게 C++17, Release가 필요합니다.)
에서 세팅을 합니다. 그리고 별도로 mimalloc같은 라이브러리도 같이 세팅을 하셔야 합니다.
(표준 new, delete는 여러 쓰레드에서 동적 할당 및 해제를 할 때 너무? 느리기 때문에 mimalloc같은
라이브러리가 있어야 제가 원하는 성능이 나오더군요)
링크 https://github.com/vztpv/scj3
다른 파서와 간단한 테스트에서 파싱 시간 (파싱 파일 citylots.json, 180메가)
// test with intel i7 10700 cpu (8코어 16쓰레드)
// 자작 파서 - 아마도 모든 코어 사용? Parse End 254 // 254ms (parsing)
// rapidjson parse 640ms
// boost/json parse 543ms
// yyjson parse 235 125 360ms (immutable 235ms, immutable -> mutable 125ms, total 360ms)
파일이 어느 정도 커야 (10메가정도?) 다른 파서와 비슷하거나 빠른 것 같습니다.
Forums: