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

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

[Kaynak] ASP.NET Core (24), Refit, MemoryPack yüksek performanslı iletişim üzerine dayanmaktadır

[Bağlantıyı kopyala]
2023-9-30 tarihinde 22:10:36 tarihinde yayınlandı | | | |
Gereksinimler: ASP.NET Core tarafından kullanılan mikroservis mimarisine göre, bazı hizmetler belirli bir hizmetle sık iletişim kurması gereken altyapı (temel hizmetler) olup, yüksek performans ve düşük gecikme özellikle önemlidir.

Verileri serileştirmek için MemoryPack protokolünü kullanmak, JSON kullanmaya göre iki avantaja sahiptir: hızlı serileştirme ve küçük içerik transferi, bu da performansı artırır.

Eleştiri:

MessagePack ve protobuf-net performans ölçütleri
https://www.itsvse.com/thread-10655-1-1.html

.net/c# Xml, Json, Hessian, Protokol Tamponları serileştirme karşılaştırması
https://www.itsvse.com/thread-4675-1-1.html

Arayüz, MemoryPack ve JSON kullanılarak 200.000 kez çağrıldı ve sonuçlar şu şekildeydi:



MemoryPack ise 29.895 milisaniye sürede çalışır
JSON 34.283 milisaniye sürer

Çünkü benYerel testte, fark çok belirgin değilSunucular arası çağrılar olduğunda, alanlar arttığında ve veri hacmi arttığında, farkın daha belirgin olacağını düşünüyorum.

ASP.NET Core yapılandırması MemoryPack protokolünü destekler

Nesne, MemoryPack protokolü kullanılarak serileştirilip HTTP protokolü üzerinden gönderildiğinden, ASP.NET Core'un MemoryPack protokolünü desteklemesi gerekir ve yeni bir MemoryPackInputFormatter sınıfı oluşturulur, kod şu şekildedir:

Daha sonra MvcOptions, aşağıdaki kodla MemoryPack protokolünü destekler:

Aşağıdaki UserProfile koduyla bir taşıma nesnesi tanımlayın:


Kontrolör yöntemi, aşağıdaki kodla bir arayüz ekler:

Konsol, HTTP istekleri göndermek için Refit kullanıyor

Bir konsol uygulaması, nesneleri serileştirmek ve HTTP isteklerini arayüzlere göndermek için MemoryPack kullanır; aşağıdaki kodla:

Test şöyledir:



Bir nesneyi serileştirmek için MemoryPackSerializer kullanılırken, aşağıdaki kod hata verir:


System.Object bu sağlayıcıda kayıtlı değildir

Bu bir MemoryPack hatası olmalı ve aşağıdaki şekilde değiştirilmeli:

(Son)





Önceki:Windows 11 Dosya Explorer'da takılma sorunu, takılı bir çözüm
Önümüzdeki:.NET/C# yeni özellik kaydı türü
 Ev sahibi| 2023-10-1 08:06:35 tarihinde yayınlandı |
System.Object bu sağlayıcıda kayıtlı değildir

Bu sorun Refit'te olduğu gibi bir sorundur:




 Ev sahibi| 2024-12-31 tarihinde yayınlandı 21:47:28 |
Dosyayı Refit ile birlikte indirerek yanıt akışı elde edin (Not:İndirilen dosya akışının tamamı belleğe yüklenmiyor



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