우선, 테스트 진행한 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 성능을 기준으로 나타낸 상대 수치.
이미지 출처 http://blog.takipi.com
작은 파일 파싱
이미지 출처 http://blog.takipi.com
큰 파일 때와는 다른 양상을 보임. 작은 파일일때는 정도의 차이는 있지만 모든 라이브러리들이 측정 때마다 들쑥날쑥한 결과를 보임. GSON 이 1순위를 가장많이 나타내고 있고 Json.simple 은 1순위가 한번도 없음.
가장 빠른 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 |