Lyhyt johdanto
Tämä blogi vertaa pääasiassa Xml-, Json-, Hessian- ja Protocol Bufferien serialisointi- ja deserialisointisuorituskykyä, jättäen Xml:n ja Jsonin peruskäsitteet sivuun. Hessian: Hessian on kevyt etäohjattava onhttp-työkalu, joka tarjoaa RMI-toiminnallisuuden binäärisen RPC-protokollan avulla ja sisäänrakennetun sarjallistamiskyvyn. Protokollapuskurit: Googlen tarjoama tietojenvaihtomuoto, joka on kieliriippumaton ja koska se on binäärimuoto, se on paljon nopeampi kuin xml-käyttö tiedonsiirtoon, ja sitä voidaan käyttää hajautettujen sovellusten väliseen tiedonsiirtoon tai tiedonvaihtoon heterogeenisissa ympäristöissä. Tehokkaana ja yhteensopivana binäärisenä tiedonsiirtomuotona sitä voidaan käyttää monilla aloilla, kuten verkon siirrossa, konfiguraatiotiedostoissa, datan tallennuksessa jne. Google tarjoaa Java-, C++- ja Python-toteutuksia, ja nyt Internetissä on myös kieliä, kuten C#.
Sarjoittaminen ja deserialisointi
XML: Käytä .Netin mukana tulevaa XmlSerializeria. Json: Se käyttää ServiceStack.Textiä, joka on suorituskykyisempi kuin Newtonsoft.Json, mutta nopein pitäisi olla fastJSON.net. Hessian: Käyttäen HessianCSharp-kirjastoa, ladattu nugetista. Protokollapuskurit: Käytetään protobuf-netiä, ladattu nugetista. Seuraavat ovat testissä käytetyt entiteetit.
Testikoneessa käytetty i7HQ 2.6HZ -prosessori. Tässä ovat testin tulokset Sarjoittaminen
Deserialisointi
Tavun pituus sarjoittamisen jälkeen
Puhutaan ensin sarjoituksesta, tässä sitä testataan 100 kertaa, 1000 kertaa, 10000 kertaa ja 100000 kertaa, ordinaatti on suoritusaika, yksikkö millisekunti, näet, että kun testaat 10000 kertaa, neljän sarjallistamisen ajan kulutus on hyvin pieni, kaikki 200 millisekunnin sisällä, 100000 kertaa ja 100000 kertaa, kaikki alkavat kasvaa, pahin on Xml, paras on protokollapuskurit, mutta kun se on 10000 kertaa, Hessian on parempi kuin Protocol Buffers. 10 000 deserialisoinnissa ei ole suurta eroa, mutta 10 000 kertaa näemme jo, että Hessian vie enemmän aikaa, ja 100 000 kertaa Hessian ylittää suoraan Xml:n, mikä saa minut aina ajattelemaan, että koodissani on ongelma, ja paras suorituskyky on silti Protocol Buffers. Sarjoitettu tavupituus on ymmärrettävästi pisin Xml:ssä, koska tiedostossa on paljon lopetustageja (),</Name> ja Protocol Buffers on edelleen paras.
Yllä olevan kaavion perusteella voimme lähes nopeasti päätellä, että Protocol Buffers on paras, mutta mielestäni meidän on silti arvioitava sitä kattavasti seuraavista näkökohdista: 1. Luettavuus: Xml ja Json ovat molemmat tekstiä sarjoittamisen jälkeen, ja luettavuus on erittäin hyvä, esimerkiksi jos keskellä on virhe, voimme helposti tarkastella vaihdettua dataa ja jopa simuloida dataa testattavaksi; Sekä Hessian- että Protocol Buffers ovat binäärisiä, ja sisältö on lukukelvotonta sarjallistamisen jälkeen, mikä vaikuttaa tietysti järjestelmän vianetsintään. 2. Monipuolisuus: XML ja JSON ovat jo vanhoja datanvaihtomuotoja, ja nämä ovat kaksi muotoa yleisten järjestelmien väliseen tiedonvaihtoon. Sekä Hessian- että Protocol Bufferit ovat suhteellisen epäsuosittuja ja niitä käytetään vähemmän. 3. Kätevyys: Hessian on itse asiassa täydellinen RPC-kehys, määrittele rajapinta palvelinpuolella ja toteuta rajapinta, kopioi rajapinta asiakkaalle. Pienen koodauksen jälkeen voimme kutsua palvelinpuolta kuin paikallista metodia, jota ei ole saatavilla muissa kolmessa työkalussa, ja suorituskyky ei ole huono.
|