Denne artikel er en spejling af maskinoversættelse, klik venligst her for at springe til den oprindelige artikel.

Udsigt: 26039|Svar: 2

[Kilde] .net/c# Xml, Json, Hessian, Protocol Buffers serialiseringssammenligning

[Kopier link]
Opslået på 13/04/2018 13.23.31 | | | |
Kort introduktion

Denne blog sammenligner primært serialiserings- og deserialiseringspræstationen for Xml, Json, Hessian og Protocol Buffers, og ser bort fra de grundlæggende begreber i Xml og Json.
Hessian: Hessian er et letvægts fjernbetjeningsværktøj på http, der leverer RMI-funktionalitet ved hjælp af den binære RPC-protokol og indbyggede serialiseringsmuligheder.
Protokolbuffere: Et format til dataudveksling fra Google, som er sproguafhængigt, og fordi det er et binært format, er det meget hurtigere end at bruge XML til dataudveksling og kan bruges til datakommunikation mellem distribuerede applikationer eller dataudveksling i heterogene miljøer. Som et effektivt og kompatibelt binært datatransmissionsformat kan det bruges inden for mange områder såsom netværkstransmission, konfigurationsfiler, datalagring osv. Google tilbyder Java-, C++- og Python-implementeringer, og nu findes der implementeringer af sprog som C# på internettet.

Serialisering og deserialisering

XML: Brug XmlSerializer, der følger med .Net.
Json: Den bruger ServiceStack.Text, som er mere ydmygende end Newtonsoft.Json, men den hurtigste burde være fastJSON.net.
Hessian: Ved at bruge HessianCSharp-biblioteket, downloadet fra nuget.
Protokolbuffere: Ved brug af protobuf-net, downloadet fra nuget.
Følgende er de enheder, der bruges i testen.

i7HQ 2.6HZ-processoren, der bruges i testmaskinen.
Her er resultaterne af testen
Serialisering


Deserialisering


Bytelængde efter serialisering


Lad os først tale om serialisering, her testes den med henholdsvis 100 gange, 1000 gange, 10000 og 100000 gange, ordinatet er færdiggørelsestiden, enheden er millisekunder, du kan se, at når man tester inden for 10000 gange, er tidsforbruget for 4 typer serialisering meget lille, alle inden for 200 millisekunder, fra 10.000 til 100.000 gange begynder de alle at vokse, det værste er Xml, det bedste er protokolbuffere, men når det er inden for 10.000 gange, Hessian er bedre end Protocol Buffers.
Der er ikke den store forskel inden for 10.000 deserialiseringer, men ved 10.000 gange kan vi allerede se, at Hessian er mere tidskrævende, og ved 100.000 gange overstiger Hessian direkte Xml, hvilket får mig altid til at tænke, at der er et problem med min kode, og den bedste ydeevne er stadig Protocol Buffers.
Den serialiserede bytelængde er forståeligt nok den længste i Xml, fordi filen indeholder mange sluttags (),</Name> og Protocol Buffers er stadig den bedste.

Baseret på grafen ovenfor kan vi næsten hurtigt konkludere, at Protocol Buffers er det bedste, men jeg mener stadig, vi skal evaluere det grundigt ud fra følgende aspekter:
1. Læsbarhed: Xml og Json er begge tekst efter serialisering, og læsbarheden er meget god, for eksempel hvis der er en fejl i midten, kan vi nemt se de udvekslede data og endda simulere dataene for at teste; Både Hessian- og Protocol Buffers er binære, og indholdet er ulæseligt efter serialisering, hvilket vil have en vis indvirkning på fejlfinding af systemet.
2. Alsidighed: XML og JSON er allerede gamle dataudvekslingsformater, og disse er de to formater for dataudveksling mellem generelle systemer. Både Hessian- og Protocol-buffere er relativt upopulære og bruges mindre.
3. Bekvemmelighed: Hessian er faktisk et komplet RPC-framework, definer interfacet på serversiden og implementerer interfacet, kopier interfacet til klienten. Efter lidt kodning kan vi kalde serversiden som at kalde en lokal metode, hvilket ikke er tilgængeligt i de andre tre værktøjer, og ydeevnen er ikke dårlig.





Tidligere:Windows installerer .net/c#-tjenesteprogrammet
Næste:StreamReader-løsning til forvrængede tegn ved fillæsning
 Udlejer| Opslået på 31/08/2023 20.57.23 |
MessagePack og protobuf-net ydelsesbenchmarks
https://www.itsvse.com/thread-10655-1-1.html
Ansvarsfraskrivelse:
Al software, programmeringsmaterialer eller artikler udgivet af Code Farmer Network er kun til lærings- og forskningsformål; Ovenstående indhold må ikke bruges til kommercielle eller ulovlige formål, ellers skal brugerne bære alle konsekvenser. Oplysningerne på dette site kommer fra internettet, og ophavsretstvister har intet med dette site at gøre. Du skal slette ovenstående indhold fuldstændigt fra din computer inden for 24 timer efter download. Hvis du kan lide programmet, så understøt venligst ægte software, køb registrering og få bedre ægte tjenester. Hvis der er nogen overtrædelse, bedes du kontakte os via e-mail.

Mail To:help@itsvse.com