Lühike sissejuhatus
See blogi võrdleb peamiselt Xml, Jsoni, Hessiani ja protokollipuhvrite serialiseerimise ja deserialiseerimise jõudlust, jättes kõrvale Xml-i ja Jsoni põhikontseptsioonid. Hessian: Hessian on kerge onhttp-i kaugjuhtimise tööriist, mis pakub RMI funktsionaalsust, kasutades binaarset RPC protokolli ja sisseehitatud serialiseerimisvõimalusi. Protokollipuhvrid: Google'i andmevahetuse formaat, mis on keelest sõltumatu ning kuna tegemist on binaarformaadiga, on see palju kiirem kui xml kasutamine andmevahetuseks ning seda saab kasutada andmesideks hajutatud rakenduste vahel või andmevahetuseks heterogeensetes keskkondades. Tõhusa ja ühilduva binaarse andmeedastuse formaadiga saab seda kasutada paljudes valdkondades, nagu võrguedastus, konfiguratsioonifailid, andmete salvestamine jne. Google pakub Java, C++, Python rakendusi ning nüüd on olemas ka selliste keelte nagu C# rakendused internetis.
Serialiseerimine ja deserialiseerimine
XML: Kasuta .Net-iga kaasas olevat XmlSerializerit. Json: See kasutab ServiceStack.Texti, mis on jõudluslikum kui Newtonsoft.Json, kuid kiireim peaks olema fastJSON.net. Hessian: Kasutades HessianCSharp teeki, allalaaditud nugetist. Protokolli puhvrid: kasutades protobuf-net'i, allalaaditud nugetist. Järgnevalt on testis kasutatud üksused.
Testmasinas kasutatud i7HQ 2.6HZ protsessor. Siin on testi tulemused Serialiseerimine
Deserialiseerimine
Baitide pikkus pärast seriaaliseerimist
Räägime esmalt serialiseerimisest, siin testitakse seda vastavalt 100, 1000, 10000 ja 100000 korda, ordinaaat on lõpetamisaeg, ühik millisekundid, näed, et kui testida 10000 korral, on nelja tüüpi seriaalistamise ajakulu väga väike, kõik 200 millisekundi jooksul, pärast 100000 korda kuni 100000 korda, hakkavad kõik kasvama, kõige hullem on Xml, parim on protokollipuhvrid, aga kui see jääb 10000 korda, Hessian on parem kui protokollipuhvrid. 10 000 deserialiseerimise puhul pole suurt vahet, kuid 10 000 korral näeme juba, et Hessian võtab rohkem aega ja 100 000 korral ületab Hessian otse Xml-i, mis paneb mind alati arvama, et minu koodiga on probleem ja parim jõudlus on ikkagi protokollipuhvrid. Serialiseeritud baiti pikkus on mõistetavalt Xml-is kõige pikem, sest fail sisaldab palju lõpusilte (),</Name> ja Protocol Buffers on endiselt parim.
Ülaltoodud graafiku põhjal võime peaaegu kiiresti järeldada, et protokollipuhvrid on parim, kuid arvan, et peame seda siiski põhjalikult hindama järgmistest aspektidest: 1. Loetavus: Xml ja Json on pärast seriaaliseerimist mõlemad tekstid ning loetavus on väga hea, näiteks kui keskel on viga, saame vahetatud andmeid hõlpsasti vaadata ja isegi andmeid testimiseks simuleerida; Nii Hessiani kui ka protokollipuhvrid on binaarsed ning sisu on pärast seriaaliseerimist loetamatu, mis mõjutab süsteemi tõrkeotsingut teatud määral. 2. Mitmekülgsus: XML ja JSON on juba vanad andmevahetusformaadid ning need on kaks formaati üldiste süsteemide vaheliseks andmevahetuseks. Nii Hesseni kui ka protokolli puhvrid on suhteliselt ebapopulaarsed ja neid kasutatakse vähem. 3. Mugavus: Hessian on tegelikult täielik RPC raamistik, määratle liides serveri poolel ja rakenda liides, kopeeri liides kliendile. Pärast väikest kodeerimist saame kutsuda serveri poolt nagu lokaalset meetodit, mida teistes kolmes tööriistas pole, ja jõudlus pole halb.
|