본문 바로가기

프로그래밍/JAVA

java json 라이브러리 별 parser 속도 비교.

우선, 테스트 진행한 json 라이브러리 후보군은

  • JSON.simple ( Yidong Fang )
  • GSON ( Google )
  • Jackson ( FasterXML )
  • JSONP  ( Oracle )

과 같음. 상기 라이브러리를 이용한 비교적 큰 사이즈의 json 문서 파싱 속도 벤치마킹 결과를 java 어플리케이션 성능평가/모니터링 도구를 개발하는 Takipi에서 공개.

벤치마크는 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

큰 파일 파싱에는 Jackson과 Json.simple 이 빠르고 Jsonp와 gson이 상대적으로 느린걸로...

가장 빠른 Jakson 성능을 기준으로 나타낸 상대 수치.

Jackson 기준 상대 속도

이미지 출처 http://blog.takipi.com


작은 파일 파싱

작은 파일 파싱

이미지 출처 http://blog.takipi.com

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

가장 빠른 GSON 성능을 기준으로 나타낸 상대 수치.

Gson 기준 상대 비교

이미지 출처 http://blog.takipi.com


결론.

  • 당신의 개발 환경이 빅데이터처리와 같이 주로 큰사이즈의 JSON을 처리해야한다면 Jackson 을 써라. 대용량 환경에서 GSON은 좋지않은 선택임.
  • 마이크로 서비스와 분산아키텍처 설정등과 같이 작은 용량의 많은 json 파일을 처리하는 환경이라면 GSON을 써라.
  • 대용량과 소용량 모두를 다양하게 처리하는 환경이라면 양쪽에서 2순위 정도를 기록한 JSON.simple 이 좋을수도 있겠다.


출처 : http://www.yunsobi.com/blog/646


'프로그래밍 > JAVA' 카테고리의 다른 글

java 날짜 관련 Date,Calendar,SimpleDateFormat 문제점  (0) 2018.07.04
JAVA8 util.time  (0) 2018.07.04
구분자로 ArrayList에 담기  (0) 2018.03.12
OOP? 객체지향  (0) 2018.03.11
자바 정규식  (0) 2018.03.04