Ta članek je zrcalni članek strojnega prevajanja, kliknite tukaj za skok na izvirni članek.

Pogled: 26039|Odgovoriti: 2

[Vir] .net/c# Xml, JSON, Hessian, primerjava serializacije protokolnih medpomnilnikov

[Kopiraj povezavo]
Objavljeno na 13. 04. 2018 13:23:31 | | | |
Kratek uvod

Ta blog večinoma primerja zmogljivost serializacije in deserializacije Xml, JSON, Hessiana in protokolnih medpomnilnikov, pri čemer izpusti osnovne koncepte XML in JSON.
Hessian: Hessian je lahko orodje za daljinsko oddaljevanje na http, ki omogoča RMI funkcionalnost z uporabo binarnega RPC protokola in vgrajene zmožnosti serializacije.
Protokolni medpomnilniki: Format za izmenjavo podatkov iz Googla, ki je neodvisen od jezika, in ker je binarni format, je veliko hitrejši od uporabe xml za izmenjavo podatkov ter se lahko uporablja za komunikacijo podatkov med porazdeljenimi aplikacijami ali izmenjavo podatkov v heterogenih okoljih. Kot učinkovit in združljiv binarni format za prenos podatkov se lahko uporablja na številnih področjih, kot so omrežni prenos, konfiguracijske datoteke, shranjevanje podatkov itd. Google ponuja implementacije za Javo, C++, Python, zdaj pa obstajajo tudi implementacije jezikov, kot je C#, na internetu.

Serializacija in deserializacija

XML: Uporabite XmlSerializer, ki je priložen .Net.
Json: Uporablja ServiceStack.Text, ki je bolj zmogljiv kot Newtonsoft.json, vendar bi moral biti najhitrejši fastJSON.net.
Hessian: Uporaba knjižnice HessianCSharp, prenesena iz nugeta.
Protokolni medpomnilniki: Uporaba protobuf-net, prenesen iz nugeta.
Naslednje so entitete, uporabljene v testu.

Procesor i7HQ 2,6Hz, uporabljen v testni napravi.
Tukaj so rezultati testa
Serializacija


Deserializacija


Dolžina bajta po serializaciji


Najprej govorimo o serijalizaciji, tukaj se testira s 100-krat, 1000-krat, 10000-krat in 100000-krat, ordinata je čas dokončanja, enota je milisekunde, lahko vidite, da je pri testiranju znotraj 10000-krat poraba časa pri štirih vrstah serializacije zelo majhna, vse znotraj 200 milisekund, po 10000-krat do 100000-krat, vse začnejo rasti, najslabše je Xml, najboljše so protokolni medpomnilniki, vendar ko je znotraj 10000-krat, Hessian je boljši od Protocol Buffers.
Pri 10.000 deserializacijah ni velike razlike, a pri 10.000-krat že vidimo, da je Hessian bolj časovno zahteven, pri 100.000-krat pa Hessian neposredno presega XML, kar me vedno prepričuje, da je težava z mojo kodo, in da je najboljša zmogljivost še vedno v protokolnih medpomnilnikih.
Serializirana dolžina bajta je razumljivo najdaljša v XML, saj datoteka vsebuje veliko končnih oznak (),</Name> Protocol Buffers pa je še vedno najboljši.

Na podlagi zgornjega grafa lahko skoraj hitro zaključimo, da je Protocol Buffers najboljši, vendar menim, da ga moramo vseeno celovito oceniti z naslednjih vidikov:
1. Berljivost: XML in Json sta po serializaciji oba besedilna, berljivost pa je zelo dobra, na primer, če pride do napake vmes, lahko enostavno pregledamo izmenjane podatke in celo simuliramo podatke za testiranje; Tako Hessian kot protokolni medpomnilnik sta binarna, vsebina pa je po serializaciji neberljiva, kar bo imelo določen vpliv na odpravljanje težav v sistemu.
2. Vsestranskost: XML in JSON sta že stara formata za izmenjavo podatkov in to sta dva formata za izmenjavo podatkov med splošnimi sistemi. Tako Hessian kot protokolni medpomnilniki so razmeroma nepriljubljeni in se uporabljajo manj.
3. Priročnost: Hessian je pravzaprav popoln RPC okvir, definiraj vmesnik na strežniški strani in implementiraj vmesnik, kopiraj vmesnik na odjemalca. Po nekaj programiranju lahko strežniško stran kličemo kot lokalno metodo, kar ni na voljo v drugih treh orodjih, zmogljivost pa ni slaba.





Prejšnji:Windows namesti .net/c# servisni program
Naslednji:Rešitev StreamReaderja za popačene znake pri branju datotek
 Najemodajalec| Objavljeno na 31. 08. 2023 20:57:23 |
Testi zmogljivosti MessagePack in protobuf-net
https://www.itsvse.com/thread-10655-1-1.html
Disclaimer:
Vsa programska oprema, programski materiali ali članki, ki jih izdaja Code Farmer Network, so namenjeni zgolj učnim in raziskovalnim namenom; Zgornja vsebina ne sme biti uporabljena v komercialne ali nezakonite namene, sicer uporabniki nosijo vse posledice. Informacije na tej strani prihajajo z interneta, spori glede avtorskih pravic pa nimajo nobene zveze s to stranjo. Zgornjo vsebino morate popolnoma izbrisati z računalnika v 24 urah po prenosu. Če vam je program všeč, podprite pristno programsko opremo, kupite registracijo in pridobite boljše pristne storitve. Če pride do kakršne koli kršitve, nas prosimo kontaktirajte po elektronski pošti.

Mail To:help@itsvse.com