java json 라이브러리 별 parser 속도 비교.
우선, 테스트 진행한 json 라이브러리 후보군은
벤치마크는 190MB 짜리( https://github.com/zeMirco/sf-city-lots-json )와 1KB 짜리( http://www.json-generator.com/ ) JSON 파일을 파싱하는 속도를 측정. AWS c3.large 인스턴스에서 큰 파일은 라이브러리당 10회 씩, 작은 파일은 10,000회 씩 수행한 결과를 정리했다고 함.
큰 파일 파싱
큰 파일 파싱에는 Jackson과 Json.simple 이 빠르고 Jsonp와 gson이 상대적으로 느린걸로...
가장 빠른 Jakson 성능을 기준으로 나타낸 상대 수치.

작은 파일 파싱
큰 파일 때와는 다른 양상을 보임. 작은 파일일때는 정도의 차이는 있지만 모든 라이브러리들이 측정 때마다 들쑥날쑥한 결과를 보임. GSON 이 1순위를 가장많이 나타내고 있고 Json.simple 은 1순위가 한번도 없음.
가장 빠른 GSON 성능을 기준으로 나타낸 상대 수치.

결론.
- JSON.simple ( Yidong Fang )
- GSON ( Google )
- Jackson ( FasterXML )
- JSONP ( Oracle )
벤치마크는 190MB 짜리( https://github.com/zeMirco/sf-city-lots-json )와 1KB 짜리( http://www.json-generator.com/ ) JSON 파일을 파싱하는 속도를 측정. AWS c3.large 인스턴스에서 큰 파일은 라이브러리당 10회 씩, 작은 파일은 10,000회 씩 수행한 결과를 정리했다고 함.
큰 파일 파싱

이미지 출처 http://blog.takipi.com
가장 빠른 Jakson 성능을 기준으로 나타낸 상대 수치.

이미지 출처 http://blog.takipi.com
작은 파일 파싱

이미지 출처 http://blog.takipi.com
가장 빠른 GSON 성능을 기준으로 나타낸 상대 수치.

이미지 출처 http://blog.takipi.com
결론.
- 당신의 개발 환경이 빅데이터처리와 같이 주로 큰사이즈의 JSON을 처리해야한다면 Jackson 을 써라. 대용량 환경에서 GSON은 좋지않은 선택임.
- 마이크로 서비스와 분산아키텍처 설정등과 같이 작은 용량의 많은 json 파일을 처리하는 환경이라면 GSON을 써라.
- 대용량과 소용량 모두를 다양하게 처리하는 환경이라면 양쪽에서 2순위 정도를 기록한 JSON.simple 이 좋을수도 있겠다.
Trackback Address:이 글에는 트랙백을 보낼 수 없습니다