Šis straipsnis yra veidrodinis mašininio vertimo straipsnis, spauskite čia norėdami pereiti prie originalaus straipsnio.

Rodinys: 4002|Atsakyti: 2

[Šaltinis] ASP.NET Core (24) yra pagrįstas Refit, MemoryPack didelio našumo ryšiu

[Kopijuoti nuorodą]
Paskelbta 2023-9-30 22:10:36 | | | |
Reikalavimai: Remiantis "ASP.NET Core" naudojama mikropaslaugų architektūra, kai kurios paslaugos yra infrastruktūra (pagrindinės paslaugos), kurioms reikia dažnai bendrauti su tam tikra paslauga, o didelis našumas ir maža delsa yra ypač svarbūs.

"MemoryPack" protokolo naudojimas duomenims nuosekliai naudoti turi du privalumus, palyginti su JSON: greitas serializavimas ir nedidelis turinio perdavimas, o tai pagerina našumą.

Peržiūra:

"MessagePack" ir "protobuf-net" našumo etalonai
https://www.itsvse.com/thread-10655-1-1.html

.net/c# Xml, Json, Hessian, Protocol Buffers serializacijos palyginimas
https://www.itsvse.com/thread-4675-1-1.html

Sąsaja buvo iškviesta 200 000 kartų naudojant "MemoryPack" ir JSON, o rezultatai buvo tokie:



"MemoryPack" trunka 29 895 milisekundes
JSON trunka 34 283 milisekundes

Kadangi aš esuVietinis testas, tarpas nėra labai pastebimasKai kryžminio šeimininko skambučiai, laukai padidėja, ir duomenų kiekis didėja, manau, kad atotrūkis bus akivaizdesnis.

"ASP.NET Core" konfigūracija palaiko "MemoryPack" protokolą

Kadangi objektas nuoseklizuojamas naudojant "MemoryPack" protokolą, o po to siunčiamas per HTTP protokolą, "ASP.NET Core" turi palaikyti "MemoryPack" protokolą ir sukuriama nauja "MemoryPackInputFormatter" klasė, kodas yra toks:

Tada MvcOptions prideda "MemoryPack" protokolo palaikymą su šiuo kodu:

Apibrėžkite transportavimo objektą su šiuo UserProfile kodu:


Valdiklio metodas prideda sąsają su šiuo kodu:

Konsolė naudoja "Refit" HTTP užklausoms siųsti

Konsolės programa naudoja "MemoryPack", kad suskirstytų objektus ir siųstų HTTP užklausas į sąsajas su šiuo kodu:

Bandymas yra toks:



Naudojant "MemoryPackSerializer" objektui nuoseklizuoti, šis kodas pateiks klaidą:


System.Object neužregistruotas šiame teikėje

Tai turėtų būti "MemoryPack" klaida, modifikuota taip:

(Pabaiga)





Ankstesnis:"Windows 11 File Explorer" mikčiojimas, įstrigęs sprendimas
Kitą:.NET/C# naujas funkcijos įrašo tipas
 Savininkas| Paskelbta 2023-10-1 08:06:35 |
System.Object neužregistruotas šiame teikėje

Ši problema yra susijusi su "Refit":




 Savininkas| Publikuota: 2024-12-31 21:47:28 |
Atsisiųskite failą naudodami "Refit", kad gautumėte atsakymo srautą (Pastaba:Visas atsisiųstas failų srautas neįkeliamas į atmintį



Atsakomybės apribojimas:
Visa programinė įranga, programavimo medžiaga ar straipsniai, kuriuos skelbia Code Farmer Network, yra skirti tik mokymosi ir mokslinių tyrimų tikslams; Aukščiau nurodytas turinys negali būti naudojamas komerciniais ar neteisėtais tikslais, priešingu atveju vartotojai prisiima visas pasekmes. Šioje svetainėje pateikiama informacija gaunama iš interneto, o ginčai dėl autorių teisių neturi nieko bendra su šia svetaine. Turite visiškai ištrinti aukščiau pateiktą turinį iš savo kompiuterio per 24 valandas nuo atsisiuntimo. Jei jums patinka programa, palaikykite autentišką programinę įrangą, įsigykite registraciją ir gaukite geresnes autentiškas paslaugas. Jei yra kokių nors pažeidimų, susisiekite su mumis el. paštu.

Mail To:help@itsvse.com