Apakah ada yang punya informasi tentang karakteristik kinerja Protocol Buffer versus BSON (binary JSON) atau versus JSON secara umum?
- Ukuran kabel
- Kecepatan serialisasi
- Kecepatan deserialisasi
Ini tampak seperti protokol biner yang bagus untuk digunakan melalui HTTP. Saya hanya ingin tahu mana yang lebih baik dalam jangka panjang untuk lingkungan C #.
Berikut beberapa info yang saya baca tentang BSON dan Protocol Buffer .
c#
json
comparison
protocol-buffers
bson
Jeff Meatball Yang
sumber
sumber
Jawaban:
Penghematan adalah alternatif lain yang mirip Protocol Buffer juga.
Ada tolok ukur yang baik dari komunitas Java tentang serialisasi / deserialisasi dan ukuran kabel dari teknologi ini: https://github.com/eishay/jvm-serializers/wiki
Secara umum, JSON memiliki ukuran kabel yang sedikit lebih besar dan DeSer yang sedikit lebih buruk, tetapi menang di mana-mana dan kemampuan untuk menafsirkannya dengan mudah tanpa IDL sumber. Poin terakhir adalah sesuatu yang coba dipecahkan oleh Apache Avro , dan ini mengalahkan keduanya dalam hal kinerja.
Microsoft telah merilis paket C # NuGet Microsoft.Hadoop.Avro .
sumber
Posting ini membandingkan kecepatan dan ukuran serialisasi dalam .NET, termasuk JSON, BSON, dan XML.
http://james.newtonking.com/archive/2010/01/01/net-serialization-performance-comparison.aspx
sumber
Berikut adalah beberapa tolok ukur terbaru yang menunjukkan kinerja .NET Serializers populer.
The Pembakaran Monks benchmark menunjukkan kinerja serialisasi sebuah POCO sederhana sementara yang komprehensif benchmark Northwind menunjukkan hasil gabungan dari serialisasi berturut-turut di setiap meja dari dataset Northwind Microsoft.
Pada dasarnya buffer protokol ( protobuf-net ) sekitar 7x lebih cepat dari serializer perpustakaan kelas Base tercepat di .NET (XML DataContractSerializer). Ini juga lebih kecil dari kompetisi karena juga 2,2x lebih kecil dari format serialisasi Microsoft yang paling kompak (JsonDataContractSerializer).
Serializers Text ServiceStack paling mendekati untuk mencocokkan kinerja protobuf-net biner di mana Json Serializer- nya hanya 2,58x lebih lambat dari protobuf-net.
sumber
buffer protokol dirancang untuk kabel:
JSON hanyalah teks dan perlu diurai . petunjuk: menyandikan "miliar" int ke dalamnya akan membutuhkan cukup banyak karakter: Billion = 12 karakter (skala panjang), dalam biner cocok dengan uint32_t Sekarang bagaimana dengan mencoba menyandikan ganda? itu akan JAUH lebih buruk.
sumber
the wire
berarti hanya jaringan. Sekarang ketika kita menggunakan begitu banyak jaringan nirkabel, ini mungkin terdengar aneh.