Bu makale makine çevirisi ayna makalesidir, orijinal makaleye geçmek için lütfen buraya tıklayın.

Görünüm: 26039|Yanıt: 2

[Kaynak] .net/c# Xml, Json, Hessian, Protokol Tamponları serileştirme karşılaştırması

[Bağlantıyı kopyala]
Yayınlandı 13.04.2018 13:23:31 | | | |
Kısa giriş

Bu blog ağırlıklı olarak Xml, Json, Hessian ve Protokol Tamponlarının serileştirme ve seri deserileştirme performansını karşılaştırır, Xml ve Json'un temel kavramlarını bir kenara bırakır.
Hessian: Hessian, ikili RPC protokolü ve yerleşik serileştirme yetenekleri kullanarak RMI işlevselliği sağlayan hafif bir uzaktan yönlendirme onhttp aracıdır.
Protokol Tamponları: Google'dan veri alışverişi için kullanılan bir format olup, dil bağımsızdır ve ikili format olduğu için xml ile veri alışverişi için kullanmaktan çok daha hızlıdır ve dağıtık uygulamalar arasında veri iletişimi veya heterojen ortamlarda veri alışverişi için kullanılabilir. Verimli ve uyumlu bir ikili veri iletim formatı olarak, ağ iletimi, yapılandırma dosyaları, veri depolama gibi birçok alanda kullanılabilir. Google, Java, C++, Python uygulamaları sunuyor ve artık İnternet'te C# gibi dillerin uygulamaları da var.

Serileştirme ve serilikten çıkarma

XML: .Net ile gelen XmlSerializer'ı kullanın.
Json: ServiceStack.Text kullanıyor, bu Newtonsoft.Json'dan daha performanslı, ama en hızlısı fastJSON.net olmalı.
Hessian: HessianCSharp kütüphanesini kullanıyorum, nuget'ten indiriliyor.
Protokol Tamponları: Protobuf-net kullanılarak, nuget'ten indirildi.
Testte kullanılan varlıklar aşağıdakılardır.

Test makinesinde kullanılan i7HQ 2.6HZ işlemcisi.
İşte testin sonuçları
Serileştirme


Deserileştirme


Serileştirmeden sonra bayt uzunluğu


Önce serileştirmeden bahsedelim, burada sırasıyla 100, 1000, 10000 ve 100000 kez test ediliyor, koordinat tamamlanma süresi, birim milisaniye, 10000 kez test edildiğinde, 4 tür serileştirmenin zaman tüketimi çok küçük olduğunu görebilirsiniz, hepsi 200 milisaniye içinde, 100000 kez ile 100000 kez arasında hepsi büyümeye başlıyor, en kötüsü Xml, en iyisi Protokol Tamponları, ama 10000 kez içindeyse, Hessian, Protokol Tamponlarından daha iyidir.
10.000 seri deserileştirme içinde çok fazla fark yok, ancak 10.000 kez Hessian'ın daha zaman alıcı olduğunu ve 100.000 kez Hessian'ın doğrudan Xml'yi aştığını görüyoruz; bu da bana kodumda bir sorun olduğunu ve en iyi performansın hâlâ Protokol Tamponları olduğunu düşündürüyor.
Serileştirilmiş bayt uzunluğu, Xml'de anlaşılır şekilde en uzun olanıdır, çünkü dosyada çok sayıda kapanış etiketi ()</Name> bulunur ve Protokol Tamponları hâlâ en iyisidir.

Yukarıdaki grafiğe dayanarak, Protokol Tamponları'nın en iyisi olduğunu neredeyse çabucak varsayabiliriz, ancak bence bunu aşağıdaki açılardan kapsamlı şekilde değerlendirmemiz gerekiyor:
1. Okunabilirlik: Xml ve Json serileştirmeden sonra metindir ve okunabilirlik çok iyidir; örneğin ortada bir hata varsa, değiş tokuş edilen verileri kolayca görebilir ve hatta test etmek için veriyi simüle edebiliriz; Hem Hessian hem de Protokol Tamponları ikilidir ve içerik serileştirmeden sonra okunamaz, bu da sistemin sorun giderme sürecini belli bir şekilde etkiler.
2. Çok Yönlülük: XML ve JSON zaten eski veri alışverişi formatlarıdır ve genel sistemler arasında veri alışverişi için iki formattır. Hem Hessian hem de Protocol Buffer'lar nispeten popüler değildir ve daha az kullanılır.
3. Kolaylık: Hessian aslında tam bir RPC çerçevesidir, sunucu tarafında arayüzü tanımlayıp arayüzü uygular, arayüzü istemciye kopyalar. Kısa bir kodlamadan sonra, sunucu tarafını yerel bir yöntem çağırması gibi çağırabiliriz, ki bu diğer üç araçta mevcut değildir ve performans kötü değildir.





Önceki:Windows, .net/c# servis programını yükler
Önümüzdeki:Dosya okurken karışık karakterler için StreamReader çözümü
 Ev sahibi| Yayınlandı 31.08.2023 20:57:23 |
MessagePack ve protobuf-net performans ölçütleri
https://www.itsvse.com/thread-10655-1-1.html
Feragatname:
Code Farmer Network tarafından yayımlanan tüm yazılım, programlama materyalleri veya makaleler yalnızca öğrenme ve araştırma amaçları içindir; Yukarıdaki içerik ticari veya yasa dışı amaçlarla kullanılamaz, aksi takdirde kullanıcılar tüm sonuçları ödemelidir. Bu sitedeki bilgiler internetten alınmakta olup, telif hakkı anlaşmazlıklarının bu siteyle hiçbir ilgisi yoktur. Yukarıdaki içeriği indirmeden sonraki 24 saat içinde bilgisayarınızdan tamamen silmelisiniz. Programı beğendiyseniz, lütfen orijinal yazılımı destekleyin, kayıt satın alın ve daha iyi orijinal hizmetler alın. Herhangi bir ihlal olursa, lütfen bizimle e-posta yoluyla iletişime geçin.

Mail To:help@itsvse.com