http://bolder00.tistory.com/2
bolder00 흠.. 이거 영종이 아닌가 싶은데.
현재 직장에서 특정 모듈을 인수인계를 받고, 스크립트 파일을 분석하는 중에 의문점이 들었다.
모든 Ajax Function 들이 XML포맷의 데이터를 가져오고 있었으며, 그것을 파싱하기 위해서, XMLDom
ActiveX를 사용하고 있었다. ( 현재 제품은 오로지 IE만 지원하고있음 )
쫌 맘에 안들긴 하지만, 스크립트 역시.. 오로지 IE만을 위한 코드밖에 없었으며.. 그다지.. 모듈화 되어있지
않았다. prototype.js 정도는 아니더라도 어느정도 정리는 되어 있기를 바랬는데... 전혀 그렇지도 않아서..
한번 고쳐볼까 하는 마음으로 분석을 하던중. XML 태그의 양이 과도하게 사용되는것 같아서...
JSON으로 데이터 포맷을 바꿔볼까 싶어서.. JSON 과 XML 의 파싱 능력을 단순 비교해 보았다.
아래는 회사 Wiki 에 올린 자료를 약간의 수정만 한 버전임..
XML vs JSON
By YJ MOON
- Why?
JSON 이라는 Data 형식이, 현재 XML Data 를 비약적으로 줄여서 통신 할 수 있는 방식이라고 생각이 되어, 현재 모듈에 적용 시킬 수 있을지 한번 테스트 해 보았습니다.
- What’s JSON
: JSON 은 한마디로 , 경량형의 Data 형식입니다.
간단하게 설명하면, 값에 대한 표현을 키와 밸류 쌍으로 하여, 반복을 최소화하여 Data를 표현 할수 있는 방식입니다.
예)
XML Data >>
<root>
<ZFPMember>
<name>문**</name>
</ZFPMemer>
<ZFPMember>
<name>박**</name>
</ZFPMemer>
<ZFPMember>
<name>김**</name>
</ZFPMemer>
<ZFPMember>
<name>최**</name>
</ZFPMemer>
</root>
JSON Data >>
{ ZFPMember = [ { “name” : “문**”}, { “name”: “박**”}, {“name” : “김**”}, {“name”, “최**”}] }
- Performance Test
: 일단 위의 예에서만 보더라도, 데이터의 전송량은 확실히 줄어듭니다.
하지만, 한가지 의문점은 javascript 에서 Data 를 parsing 해서 사용할때에, XML Data 는 “XMLDOM” 을 사용하여(IE) parsing 을 하고, JSON 은 json.js 내부적으로 정규식을 사용하는데, 그 성능의 차이는 어떠한지 테스트 해보았습니다.
일단, XML 포맷으로 데이터를 리턴하는 페이지와 JSON 포맷으로 데이터를 리턴하는 페이지를 각각 만들고, Client 페이지를 제작하여 ,
50, 100, 500, 1000, 5000, 10000 개의 데이터를 송신한후, Parsing 하여 페이지에 출력하기까지의 걸린 시간을 측정 하였습니다.
각각 10번씩 측정하여, 평균을 낸 값입니다.
|
50 |
100 |
500 |
1000 |
5000 |
10000 |
XML |
0.019 |
0.0312 |
0.0906 |
0.2782 |
4.7924 |
16.026 |
JSON |
0.008 |
0.0219 |
0.0952 |
0.4328 |
16.8998 |
69.771 |
xml vs json result
- Conclusion
: 성능테스트 표를 보면, 데이터가 100 개 미만인 경우, 약간 성능이 더 빠른듯 보이지만, 데이터 갯수가 늘어날 경우 , JSON의 경우 비약적으로 성능이 느려짐을 알 수 있습니다.
데이터의 패킷이 줄어든다는 장점은 있지만, parsing 에 있어서는 성능이 너무 차이가 심하네요.
'IT-Consultant' 카테고리의 다른 글
성능분석시 vmstat의 결과를 날짜와 함께 한 라인에 보이도록 만든 스크립트 (0) | 2008.10.15 |
---|---|
성능분석시 vmstat의 결과를 날짜와 함께 한 라인에 보이도록 만든 스크립트 (0) | 2008.10.15 |
JSON vs XML Parsing (0) | 2008.10.15 |
k2 611버전 서버이전 시 수정해야할 파일들 (0) | 2008.10.15 |
k2 611버전 서버이전 시 수정해야할 파일들 (0) | 2008.10.15 |