Pengantar singkat
Blog ini terutama membandingkan kinerja serialisasi dan deserialisasi Xml, Json, Hessian, dan Protocol Buffers, mengesampingkan konsep dasar Xml dan Json. Hessian: Hessian adalah alat jarak jauh onhttp ringan yang menyediakan fungsionalitas RMI menggunakan protokol RPC biner dan kemampuan serialisasi bawaan. Buffer Protokol: Format untuk pertukaran data dari google, yang tidak bergantung pada bahasa, dan karena ini adalah format biner, ini jauh lebih cepat daripada menggunakan xml untuk pertukaran data, dan dapat digunakan untuk komunikasi data antara aplikasi terdistribusi atau pertukaran data di lingkungan yang heterogen. Sebagai format transmisi data biner yang efisien dan kompatibel, dapat digunakan di banyak bidang seperti transmisi jaringan, file konfigurasi, penyimpanan data, dll. Google menyediakan implementasi Java, C++, Python, dan sekarang ada implementasi bahasa seperti C# di Internet.
Serialisasi dan deserialisasi
XML: Gunakan XmlSerializer yang disertakan dengan .Net. Json: Ini menggunakan ServiceStack.Text, yang berkinerja lebih baik daripada Newtonsoft.Json, tetapi yang tercepat harus fastJSON.net. Hessian: Menggunakan perpustakaan HessianCSharp, diunduh dari nuget. Buffer Protokol: Menggunakan protobuf-net, diunduh dari nuget. Berikut ini adalah entitas yang digunakan dalam pengujian.
Prosesor i7HQ 2.6HZ yang digunakan dalam mesin uji. Berikut hasil tes Serialisasi
deserialisasi
Panjang byte setelah serialisasi
Mari kita bicara tentang serialisasi terlebih dahulu, di sini diuji dengan masing-masing 100 kali, 1000 kali, 10000 kali dan 100000 kali, koordinatnya adalah waktu penyelesaian, satuannya adalah milidetik, Anda dapat melihat bahwa saat menguji dalam 10000 kali, konsumsi waktu 4 jenis serialisasi sangat kecil, semuanya dalam 200 milidetik, setelah 10000 kali, hingga 100000 kali, semuanya mulai tumbuh, yang terburuk adalah Xml, yang terbaik adalah Buffer Protokol, tetapi ketika dalam 10000 kali, Hessian lebih baik daripada Buffer Protokol. Tidak banyak perbedaan dalam 10.000 deserialisasi, tetapi pada 10.000 kali, kita sudah dapat melihat bahwa Hessian lebih memakan waktu, dan pada 100.000 kali, Hessian langsung melebihi Xml, yang membuat saya selalu berpikir bahwa ada masalah dengan kode saya, dan kinerja terbaik masih Buffer Protokol. Panjang byte berseri dapat dimengerti yang terpanjang di Xml, karena file berisi banyak tag akhir (),</Name> dan Buffer Protokol masih yang terbaik.
Berdasarkan grafik di atas, kita hampir dapat dengan cepat menyimpulkan bahwa Buffer Protokol adalah yang terbaik, tetapi saya pikir kita masih perlu mengevaluasinya secara komprehensif dari aspek-aspek berikut: 1. Keterbacaan: Xml dan Json sama-sama teks setelah serialisasi, dan keterbacaannya sangat bagus, misalnya, jika ada kesalahan di tengah, kita dapat dengan mudah melihat data yang dipertukarkan, dan bahkan mensimulasikan data untuk diuji; Baik Hessian dan Protocol Buffer bersifat biner, dan kontennya tidak dapat dibaca setelah serialisasi, yang akan berdampak tertentu pada pemecahan masalah sistem. 2. Keserbagunaan: XML dan JSON sudah menjadi format pertukaran data lama, dan ini adalah dua format untuk pertukaran data antar sistem umum. Baik Hessian dan Protocol Buffer relatif tidak populer dan lebih sedikit digunakan. 3. Kenyamanan: Hessian sebenarnya adalah kerangka kerja RPC yang lengkap, tentukan antarmuka di sisi server dan implementasikan antarmuka, salin antarmuka ke klien Setelah sedikit pengkodean, kita dapat memanggil sisi server seperti memanggil metode lokal, yang tidak tersedia di tiga alat lainnya, dan kinerjanya tidak buruk.
|