Ten artykuł jest lustrzanym artykułem tłumaczenia maszynowego, kliknij tutaj, aby przejść do oryginalnego artykułu.

Widok: 26039|Odpowiedź: 2

[Źródło] .net/c# Xml, Json, Hessian, porównanie serializacji protokołu

[Skopiuj link]
Opublikowano 13.04.2018 13:23:31 | | | |
Krótkie wprowadzenie

Ten blog głównie porównuje wydajność serializacji i deserializacji Xml, JSON, Hessiana oraz protokołu, pomijając podstawowe koncepcje XML i JSON.
Hessian: Hessian to lekkie narzędzie do oddalania na http, które zapewnia funkcjonalność RMI z wykorzystaniem binarnego protokołu RPC oraz wbudowane możliwości serializacji.
protokołu: Format wymiany danych z Google, niezależny od języka, a ponieważ jest formatem binarnym, jest znacznie szybszy niż XML do wymiany danych i może być używany do komunikacji danych między aplikacjami rozproszonymi lub wymiany danych w heterogenicznych środowiskach. Jako wydajny i kompatybilny format transmisji danych binarnych, może być używany w wielu dziedzinach, takich jak transmisja sieciowa, pliki konfiguracyjne, przechowywanie danych itp. Google oferuje implementacje Java, C++, Pythona, a obecnie w Internecie dostępne są implementacje języków takich jak C#.

Serializacja i deserializacja

XML: Użyj XmlSerializer, który jest dołączony do .Net.
Json: Używa ServiceStack.Text, który jest wydajniejszy niż Newtonsoft.json, ale najszybszy powinien być fastJSON.net.
Hessian: Korzystając z biblioteki HessianCSharp, pobranej z nuget.
protokołu: Używając protobuf-net, pobrane z nuget.
Poniżej przedstawiono jednostki używane w teście.

Procesor i7HQ 2.6HZ używany w maszynie testowej.
Oto wyniki testu
Serializacja


Deserializacja


Długość bajtu po serializacji


Porozmawiajmy najpierw o serializacji, tutaj testuje się ją odpowiednio 100 razy, 1000 razy, 10000 razy i 100000 razy, oordynat to czas zakończenia, jednostka to milisekundy, widać, że przy testach z dokładnością do 10000 razy zużycie czasu 4 rodzajów serializacji jest bardzo małe, wszystkie w ciągu 200 milisekund, po 10000 razach, do 100000 razy, wszystkie zaczynają rosnąć, najgorszy jest XML, najlepszy to protokołu, ale gdy jest w granicach 10000 razy, Hessian jest lepszy niż Protocol Buffers.
Różnica w 10 000 deserializacji nie jest duża, ale przy 10 000 razy już widzimy, że Hessian zajmuje więcej czasu, a przy 100 000 razy Hessian bezpośrednio przewyższa Xml, co sprawia, że zawsze myślę, iż jest problem z moim kodem, a najlepszą wydajność nadal dają Protocol Buffers.
Długość bajtów serializowanych jest zrozumiale najdłuższa w Xml, ponieważ plik zawiera wiele tagów końcowych (),</Name> a Protocol Buffers nadal jest najlepszy.

Na podstawie powyższego wykresu możemy niemal szybko stwierdzić, że Protocol Buffers jest najlepszy, ale myślę, że wciąż musimy go kompleksowo ocenić z następujących aspektów:
1. Czytelność: XML i Json to zarówno teksty po serializacji, a czytelność jest bardzo dobra, na przykład jeśli popełnimy błąd pośredni, możemy łatwo zobaczyć wymienione dane, a nawet je symulować do testowania; Zarówno Hessiana, jak i protokołu są binarne, a zawartość jest nieczytelna po serializacji, co będzie miało pewien wpływ na rozwiązywanie problemów systemu.
2. Wszechstronność: XML i JSON to już stare formaty wymiany danych i są to dwa formaty wymiany danych między systemami ogólnymi. Zarówno Hessiana, jak i protokołu są stosunkowo niepopularne i rzadziej używane.
3. Wygoda: Hessian to w rzeczywistości kompletny framework RPC, definiuj interfejs po stronie serwera i implementuj interfejs, kopiuj interfejs do klienta. Po niewielkim kodowaniu możemy wywołać stronę serwera jak wywoływanie metody lokalnej, co nie jest dostępne w pozostałych trzech narzędziach, a wydajność nie jest zła.





Poprzedni:Windows instaluje program serwisowy .net/c#
Następny:Rozwiązanie StreamReader dla zniekształconych znaków podczas odczytu plików
 Ziemianin| Opublikowano 31.08.2023 20:57:23 |
Benchmarki wydajności MessagePack i protobuf-net
https://www.itsvse.com/thread-10655-1-1.html
Zrzeczenie się:
Całe oprogramowanie, materiały programistyczne lub artykuły publikowane przez Code Farmer Network służą wyłącznie celom edukacyjnym i badawczym; Powyższe treści nie mogą być wykorzystywane do celów komercyjnych ani nielegalnych, w przeciwnym razie użytkownicy ponoszą wszelkie konsekwencje. Informacje na tej stronie pochodzą z Internetu, a spory dotyczące praw autorskich nie mają z nią nic wspólnego. Musisz całkowicie usunąć powyższą zawartość z komputera w ciągu 24 godzin od pobrania. Jeśli spodoba Ci się program, wspieraj oryginalne oprogramowanie, kup rejestrację i korzystaj z lepszych, autentycznych usług. W przypadku naruszenia praw prosimy o kontakt mailowy.

Mail To:help@itsvse.com