Denna artikel är en spegelartikel om maskinöversättning, klicka här för att hoppa till originalartikeln.

Utsikt: 26039|Svar: 2

[Källa] .net/c# Xml, Json, Hessian, Protocol Buffers serialiseringsjämförelse

[Kopiera länk]
Publicerad på 2018-04-13 13:23:31 | | | |
Kort introduktion

Denna blogg jämför främst serialiserings- och deserialiseringsprestandan för Xml, Json, Hessian och protokollbuffertar, och lämnar de grundläggande begreppen Xml och Json åt sidan.
Hessian: Hessian är ett lättviktigt fjärrstyrningsverktyg på http som tillhandahåller RMI-funktionalitet med hjälp av det binära RPC-protokollet och inbyggda serialiseringsfunktioner.
Protokollbuffertar: Ett format för datautbyte från Google, som är språkoberoende och eftersom det är ett binärt format är det mycket snabbare än att använda xml för datautbyte, och kan användas för datakommunikation mellan distribuerade applikationer eller datautbyte i heterogena miljöer. Som ett effektivt och kompatibelt format för binär dataöverföring kan det användas inom många områden såsom nätverksöverföring, konfigurationsfiler, datalagring med mera. Google tillhandahåller Java-, C++- och Python-implementationer, och nu finns det implementationer av språk som C# på Internet.

Serialisering och deserialisering

XML: Använd XmlSerializern som följer med .Net.
Json: Den använder ServiceStack.Text, som är mer prestandaeffektiv än Newtonsoft.Json, men den snabbaste bör vara fastJSON.net.
Hessian: Använder HessianCSharp-biblioteket, nedladdat från nuget.
Protokollbuffertar: Använder protobuf-net, nedladdat från nuget.
Följande är de entiteter som används i testet.

i7HQ 2.6HZ-processorn som används i testmaskinen.
Här är testresultaten
Serialisering


Deserialisering


Bytelängd efter serialisering


Låt oss prata om serialisering först, här testas den med 100 gånger, 1000 gånger, 10 000 och 100 000 gånger respektive, ordinaten är slutförandetiden, enheten är millisekunder, du kan se att när man testar inom 10 000 gånger är tidsåtgången för 4 typer av serialisering mycket liten, alla inom 200 millisekunder, efter 10 000 gånger till 100 000 gånger, de börjar alla växa, det värsta är Xml, det bästa är protokollbuffertar, men när det är inom 10 000 gånger, Hessian är bättre än protokollbuffertar.
Det är inte så stor skillnad inom 10 000 deserialiseringar, men vid 10 000 gånger kan vi redan se att Hessian är mer tidskrävande, och vid 100 000 gånger överstiger Hessian direkt Xml, vilket får mig alltid att tro att det är ett problem med min kod, och den bästa prestandan är fortfarande protokollbuffertar.
Den serialiserade bytelängden är förståeligt nog den längsta i Xml, eftersom filen innehåller många sluttaggar (),</Name> och Protocol Buffers är fortfarande bäst.

Baserat på grafen ovan kan vi nästan snabbt dra slutsatsen att Protocol Buffers är bäst, men jag tror att vi ändå behöver utvärdera den heltäckande från följande aspekter:
1. Läsbarhet: Xml och Json är båda text efter serialisering, och läsbarheten är mycket god, till exempel om det finns ett fel i mitten kan vi enkelt se den utbytta datan och till och med simulera datan för att testa; Både Hessian- och protokollbuffertar är binära, och innehållet är oläsbart efter serialisering, vilket kommer att ha en viss påverkan på systemets felsökning.
2. Mångsidighet: XML och JSON är redan gamla datautväxlingsformat, och dessa är de två formaten för datautbyte mellan allmänna system. Både Hessian- och Protokollbuffertar är relativt impopulära och används mindre.
3. Bekvämlighet: Hessian är faktiskt ett komplett RPC-ramverk, definiera gränssnittet på serversidan och implementera gränssnittet, kopiera gränssnittet till klienten. Efter lite kodning kan vi anropa serversidan som att anropa en lokal metod, vilket inte finns i de andra tre verktygen, och prestandan är inte dålig.





Föregående:Windows installerar .net/c#-tjänstprogrammet
Nästa:StreamReader-lösning för förvrängda tecken vid filläsning
 Hyresvärd| Publicerad på 2023-08-31 20:57:23 |
MessagePack och protobuf-net prestandabenchmark
https://www.itsvse.com/thread-10655-1-1.html
Friskrivning:
All programvara, programmeringsmaterial eller artiklar som publiceras av Code Farmer Network är endast för lärande- och forskningsändamål; Ovanstående innehåll får inte användas för kommersiella eller olagliga ändamål, annars kommer användarna att bära alla konsekvenser. Informationen på denna sida kommer från internet, och upphovsrättstvister har inget med denna sida att göra. Du måste helt radera ovanstående innehåll från din dator inom 24 timmar efter nedladdning. Om du gillar programmet, vänligen stöd äkta programvara, köp registrering och få bättre äkta tjänster. Om det finns något intrång, vänligen kontakta oss via e-post.

Mail To:help@itsvse.com