1

私は現在、モバイルデバイスのiPhoneアプリなどで消費するためのいくつかのサービスの作成に取り組んでいます。したがって、私にとって非常に重要なのは、httpサービスからデバイスに返されるペイロードです。できるだけ小さくする必要があります。だから私はこれのためにjsonを使いました。

ただし、サイズが平均で 25% 小さい別のタイプに出くわしました - BSON

JSONの代わりにそれを使用することの長所と短所はありますか? http サービスから返されるデータは、ほとんどが複雑なタイプの多数のプロパティを持つ単純なオブジェクトか、場合によってはオブジェクトのリストです。

または、ペイロードをさらに削減する可能性のある別のデータ型を確認する必要がありますか?

4

1 に答える 1

5

JSON と BSON を使用して、Android 3.2 でいくつかのパフォーマンス テストを行いました。私が使用したフレームワークは、gson と bson4jackson です。サーバーは、Jersey で構築された Java REST API です。このシナリオでは、クライアント上の Java オブジェクトを JSON/BSON にマーシャリングし、HTTP 経由でサーバーに送信し、マーシャリングを解除して、マーシャリング解除プロセスが成功した場合は 200 OK で応答しました。

その結果、大きなファイル (~120 kb 以上) では BSON の方が高速であり、小さなファイルでは JSON の方が明らかに高速でした。

その理由は、BSON が解析を高速化するためにいくつかの追加データを使用してデータ形式を拡張するためです。これにより、特に小さなドキュメントの場合、ファイル サイズが大きくなります。

iOS でも同じことを試しましたが、BSON をデコードするための (動作する) BSON フレームワークが見つかりませんでした。BSONKit は、iOS の一部の要素でエラーをスローします。誰かが別の作業フレームワークを知っている場合は、教えていただければ幸いです。

ところで: パッキング率も最大 135 kb の JSON の方が優れていました。モバイルデバイスとサーバー間の従来のリクエストでは120kb以上が非常に大きなサイズであるため、大きなファイルのみを処理する必要がある場合にのみ、BSONを使用する必要があります。

于 2012-09-03T12:54:06.727 に答える