-
JSON 어떤 라이브러리를 사용해야 할까?Android/Json 2019. 6. 16. 20:56
개발하는 많은 REST API는 응답 데이터 포맷을 JSON으로 선택한다.
( Git hub API만 보아도 알 수 있다시피.. )
REST API에 데이터 요청을 보내 값이 돌아오면 값을 파싱하여야 한다.
파싱을 하기 위해서는 역직렬화 ( deserialization ) 과정이 필요하다.
현재 굉장히 많은 자바 JSON 라이브러리가 존재하는데 어떤것을 사용해야 하는지 감이 오지 않는다.
https://www.developer.com/lang/jscript/top-7-open-source-json-binding-providers-available-today.html
위의 기사에서 대략 7가지의 JSON API를 소개하였는데, 아래와 같다.
- Jackson
- Google-gson
- JSON-lib
- Flexjson
- Json-io
- Genson
- JSONij
대체적으로 많이본 라이브러리는 딱 2개 ( Jackson과 Google-gson )
나머지는 자세히는 모르겠지만 나중에 다뤄보도록 해야겠다.
각각의 라이브러리 사용시 걸리는 시간은 아래와 같다.
테스트 환경
CPU : Intel Core i5 2.50Ghz
RAM : DDR3 4G Single
테스트 방식
50회 반복 및 10회 워밍업 반복
위의 그래프는 JSON data 287 Kb 자료의 직렬화 역직렬화의 걸리는 시간을 나타내었다.
직렬화 최단 라이브러리 : Flexjson
역 직렬화 최단 라이브러리 : google-gson직렬화 와 역 직렬화를 동시에 할 경우 ( google-gson )이 111.34 ms 로 가장 빠르것으로 나타났다.
위의 그래프는 JSON data 108 Mb 자료의 직렬화 역직렬화의 걸리는 시간을 나타내었다.
직렬화 최단 라이브러리 : Jackson
역 직렬화 최단 라이브러리 : JSON-lib직렬화 와 역 직렬화를 동시에 할 경우 ( Jackson )이 1511.22 ms 로 가장 빠르것으로 나타났다.
따라서 대용량 데이터 처리에는 Jackson을 저용량 데이터 처리에는 google-gson을 처리해야 한다는 것을 보여주지만
사용자와 환경에 따라서 잘 선택하는것이 좋아보인다.
또한 개발코드도....
'Android > Json' 카테고리의 다른 글
JSON 라이브러리 Gson과 Jackson - Gson편 (0) 2019.06.18 JSON 라이브러리 Gson과 Jackson - Jackson 편 (0) 2019.06.16