Īss ievads
Šajā emuārā galvenokārt tiek salīdzināta Xml, Json, Hesijas un protokola buferu serializācijas un deserializācijas veiktspēja, atstājot malā Xml un Json pamatjēdzienus. Hesiešu: hesiešu valoda ir viegls attālinātās pārvietošanas rīkshttp, kas nodrošina RMI funkcionalitāti, izmantojot bināro RPC protokolu un iebūvētās serializācijas iespējas. Protokola buferi: datu apmaiņas formāts no google, kas ir neatkarīgs no valodas, un, tā kā tas ir binārs formāts, tas ir daudz ātrāks nekā xml izmantošana datu apmaiņai, un to var izmantot datu saziņai starp izplatītām lietojumprogrammām vai datu apmaiņai neviendabīgā vidē. Kā efektīvu un saderīgu bināro datu pārraides formātu to var izmantot daudzās jomās, piemēram, tīkla pārraidē, konfigurācijas failos, datu glabāšanā utt. Google nodrošina Java, C++, Python ieviešanu, un tagad internetā ir tādas valodas kā C#.
Serializācija un deserializācija
XML: izmantojiet XmlSerializer, kas iekļauts .Net. Json: Tas izmanto ServiceStack.Text, kas ir veiktspējīgāks nekā Newtonsoft.Json, bet ātrākajam vajadzētu būt fastJSON.net. Hessian: HessianCSharp bibliotēkas izmantošana, lejupielādēta no nuget. Protokola buferi: Izmantojot protobuf-net, lejupielādēts no nuget. Tālāk ir norādītas testā izmantotās entītijas.
Testa mašīnā izmantotais i7HQ 2.6HZ procesors. Šeit ir testa rezultāti Serializācija
deserializācija
Baitu garums pēc serializācijas
Vispirms parunāsim par serializāciju, šeit tas tiek pārbaudīts attiecīgi 100 reizes, 1000 reizes, 10000 reizes un 100000 reizes, ordināta ir pabeigšanas laiks, vienība ir milisekundes, jūs varat redzēt, ka, pārbaudot 10000 reizes, 4 veidu serializācijas laika patēriņš ir ļoti mazs, visi 200 milisekunžu laikā, pēc 10000 reizēm, līdz 100000 reizes, tie visi sāk augt, sliktākais ir Xml, labākais ir protokola buferi, bet, kad tas ir 10000 reižu robežās, Hesijas valoda ir labāka par protokola buferiem. 10 000 deserializāciju starpā nav lielas atšķirības, bet 10 000 reižu mēs jau varam redzēt, ka hesiešu valoda ir laikietilpīgāka, un 100 000 reižu hesiešu valoda tieši pārsniedz Xml, kas man vienmēr liek domāt, ka ir problēma ar manu kodu, un vislabākā veiktspēja joprojām ir protokola buferi. Saprotams, ka serializētais baitu garums ir visgarākais Xml, jo failā ir daudz beigu tagu (),</Name> un protokola buferi joprojām ir labākais.
Pamatojoties uz iepriekš redzamo grafiku, mēs gandrīz ātri varam secināt, ka protokola buferi ir labākie, bet es domāju, ka mums tas joprojām ir visaptveroši jāizvērtē no šādiem aspektiem: 1. Lasāmība: Xml un Json ir teksts pēc serializācijas, un lasāmība ir ļoti laba, piemēram, ja vidū ir kļūda, mēs varam viegli apskatīt apmainītos datus un pat simulēt pārbaudāmos datus; Gan Hesijas, gan protokola buferi ir bināri, un saturs pēc serializācijas ir nesalasāms, kas zināmā mērā ietekmēs sistēmas problēmu novēršanu. 2. Daudzpusība: XML un JSON jau ir veci datu apmaiņas formāti, un tie ir divi formāti datu apmaiņai starp vispārējām sistēmām. Gan Hesijas, gan protokola buferi ir salīdzinoši nepopulāri un tiek izmantoti mazāk. 3. Ērtības: Hessian faktiski ir pilnīga RPC sistēma, definējiet saskarni servera pusē un ieviesiet saskarni, kopējiet saskarni klientam Pēc neliela kodēšanas apjoma mēs varam izsaukt servera pusi, piemēram, izsaukt vietējo metodi, kas nav pieejama pārējos trīs rīkos, un veiktspēja nav slikta.
|