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

Görünüm: 14559|Yanıt: 0

[Kaynak] Java kryo/protobuf/protostuff serileştirme veya JSON performans karşılaştırması

[Bağlantıyı kopyala]
Yayınlandı 15.07.2019 21:16:23 | | |
Bir Java nesnesinin serileştirmesi için, JSON ile genel serileştirme araçları arasındaki zaman ve mekansal performans açısından farkı test etmek istiyorum.

JSON Fastjson kullanmayı seçiyor.

Serileştirme aracı Protostuff ve Kyro kullanıyor. Neden protobuff'u kullanmıyorsun? Çünkü yüzlerce mevcut özelliği olan bir Java sınıfı için, yeni bir eşleşen proto dosyası oluşturmanın biraz insana aykırı olduğunu düşünüyorum. Protostuff, Protobuf'un geliştirilmiş bir versiyonudur; bu da Java Nesnesini doğrudan serileştirmeye olanak tanır; bunu Kyro gibi kullanarak, Protobuf kadar ara işlem olmadan. Diğerleri, örneğin Hession, serileştirme özellikli Java gibi oyunların, Kryo ve Protobuf'tan çok daha kötü performans gösterdiği söylenir, bu yüzden ne bekleyeceğimi bilmiyorum.

Basit bir testten sonra farkın oldukça belirgin olduğunu fark ettim, bu yüzden özel bir değerlendirme yapmaya gerek olmadığını hissettim. Günlüğün bir paragrafını kesip gönderin, herkes hisseder.

maliyet zamanı: System.nanoTime(); Üçü de varsayılan konfigürasyonlardır ve herhangi bir yapılandırma yoktur.
Serileştirmeden sonra alan alanı protostuff'tan biraz daha düşüktür ve her ikisi de JSON'dan çok daha yüksektir. Bunu anlamak kolay, sonuçta json dizeleri okunabilir, fazla zorlamayın.
Serileştirme ve seri deserileştirme için gereken süre, Kyro'dan daha iyi ve fark oldukça açık.

Sonuç olarak, eğer çok zorlu bir alan gereksinimi yoksa, Protostuff en iyi seçenek olabilir. Protostuff'un Kyro'ya göre ek bir avantajı var; yani java sınıfı serileştirmeden sonra ve serilikten çıkarmadan önce (ki gerçek işte kaçınılmazdır) alan eklerse, Kyro işe yaramaz olur. Ancak, protostuff sınıfın sonunda eklendiği ve güneş serisi JDK kullandığı sürece kullanılabilir. Bu nedenle, serileştirme önbellek gibi senaryolarda kullanılıyorsa ve serileştirilmiş nesne uzun süre saklanması gerekiyorsa, sadece protostuff seçebilirsiniz.

Tabii ki, okunabilirlik veya benzeri bir şey varsa, sadece json kullanabilirsiniz.




Önceki:asp.net Oturum kimliği adını özelleştirin
Önümüzdeki:.NET platformunda Protobuf ve JSON performansının karşılaştırılması
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