プロトコルバッファとJSONまたはBSONの比較
-
18-09-2019 - |
解決
リサイクルにも、他のプロトコルバッファのような代替物である。
:これらの技術のシリアライズ/デシリアライゼーションのワイヤサイズのJavaコミュニティから良いベンチマークがあります。 https://github.com/eishay/jvm-serializers/wikiする
一般的に、JSONはわずかに大きいワイヤサイズとわずかに悪化DeSerを有するが、遍在ソースIDLなしで簡単に解釈する能力に勝ちます。最後のポイントは、 Apacheのアブロのが解決しようとしている、そしてそれはパフォーマンスの面で両方打つものです。
MicrosoftがC#NuGetパッケージをリリースしました Microsoft.Hadoop.Avroするます。
他のヒント
この投稿には比較しますJSON、BSONやXMLなどの.NETでシリアル化のスピードとサイズ、ます。
のhttp://james.newtonking .COM /アーカイブ/ 2010/01/01 /ネットシリアライゼーション・パフォーマンス・comparison.aspxする
ここにある人気.NETシリアライザのパフォーマンスを示すのいくつかの最近のベンチマークます。
バーニングモンクベンチマークが示す href="http://theburningmonk.com/2011/11/performance-test-json-serializers-part-ii/"包括的な Northwindのベンチマークながら簡単なPOCOのシリアライズのパフォーマンス> Microsoftのノースウィンドデータセットのすべての表の行をシリアライズを合わせた結果を示します。
基本的プロトコルバッファ(いるProtobufネットの)7X 強いの周りで>最速の基本クラスライブラリ.NETでシリアライザ(XML DataContractSerializer)よりも速く。そのこともあるとして、競争よりも小さいの 2.2倍のMicrosoftの最もコンパクトなシリアル化形式(JsonDataContractSerializer)。より小さい
ServiceStackのTextシリアライザは、バイナリいるProtobufネットの JSONシリアライザのパフォーマンスをマッチングに最も近いですのはいるProtobufネットよりも唯一の 2.58x の遅います。
プロトコル バッファはワイヤ用に設計されています。
- 非常に小さいメッセージ サイズ - 1 つの側面は、非常に効率的な可変サイズの整数表現です。
- 非常に高速なデコード - これはバイナリ プロトコルです。
- protobuf は、メッセージのエンコードとデコードのために非常に効率的な C++ を生成します -- ヒント:すべての可変長整数または静的なサイズの項目をエンコードすると、決定的な速度でエンコードおよびデコードされます。
- 非常に豊富なデータ モデルを提供し、非常に複雑なデータ構造を効率的にエンコードします。
JSON は単なるテキストであり、 解析された. 。ヒント:「10 億」の int をエンコードするには、かなり多くの文字が必要になります。Billion = 12 文字 (ロングスケール)、バイナリでは uint32_t に収まります。 さて、double をエンコードしてみるとどうでしょうか。それははるかに悪いことになるでしょう。