2012-07-23 3 views
1

저는 현재 모바일 장치 인 iphone 앱과 같은 일부 서비스를 작성하는 중입니다. 따라서 내게 매우 중요한 것은 유료 부하가 내 http 서비스에서 장치로 반환되는 것이므로 가능한 한 작게해야합니다. 그래서 나는 이것을 위해 json과 갔다. BSON을 휴대 기기로 반송하는 데 문제가 있습니까?

그러나 나는 평균 크기가 25 % 이하로하기위한 것입니다 또 다른 유형에 걸쳐 온 - BSON

사람이 함께 작업하고 그것을 사용하는 대신 JSON의 장점과 단점이있다? http 서비스에서 반환되는 데이터는 대부분 복잡한 유형의 속성 또는 가능한 객체 목록이있는 단순한 객체입니다.

페이로드를 추가로 잘라낼 수있는 다른 데이터 유형이 있습니까?

답변

5

JSON 및 BSON으로 Android 3.2에서 성능 테스트를 수행했습니다. 내가 사용한 프레임 워크는 gson과 bson4jackson이었습니다. 서버는 Java REST API이며 Jersey로 빌드됩니다. 시나리오에서 클라이언트의 Java 객체를 JSON/BSON으로 마샬링하고 HTTP를 통해 서버로 보내고 비 정렬 화했으며 비 정렬 프로세스가 성공하면 200 OK로 응답했습니다.

그 결과, 더 큰 파일 (~ 120kb 이상)에서 작은 파일에서 JSON이 더 빠르다는 것을 알게되었습니다. JSON은 분명 더 빠릅니다.

이유는 BSON이 파싱을 가속화하기 위해 몇 가지 추가 데이터로 데이터 형식을 확장하기 때문에 특히 작은 문서의 경우 파일 크기가 커집니다.

iOS에서도 같은 방법을 시도했지만 BSON을 해독 할 수있는 (작동중인) BSON 프레임 워크를 찾을 수 없었습니다. BSONKit은 iOS의 일부 요소에 오류를 발생시킵니다. 누군가 당신이 저에게 말할 수 있다면 기꺼이 다른 작업 틀을 알고 있습니다.

BTW : 포장 속도는 JSON의 경우 최대 135KB입니다. IMHO 모바일 장치와 서버 간의 일반적인 요청에 대해 120KB 이상이 크기 때문에 큰 파일 만 처리해야하는 경우에만 BSON을 사용해야합니다.

+0

여전히 iOS에서 이러한 테스트를 시도하고 싶다면 ObosmongoDB (iOS를 지원함)를 자유롭게 사용해보십시오. 네가 곤경에 처했을 때 나에게 연락 할 수있어. – paulmelnikow