Questo articolo è un articolo speculare di traduzione automatica, clicca qui per saltare all'articolo originale.

Vista: 26039|Risposta: 2

[Fonte] Confronto della serializzazione di XML, Json, Hessian, Protocol Buffers

[Copiato link]
Pubblicato su 13/04/2018 13:23:31 | | | |
Breve introduzione

Questo blog confronta principalmente le prestazioni di serializzazione e deserializzazione di XML, Json, Hessian e Protocol Buffer, escludendo i concetti base di XML e Json.
Hessian: Hessian è uno strumento remoting onhttp leggero che fornisce funzionalità RMI utilizzando il protocollo binario RPC e capacità di serializzazione integrate.
Protocol Buffers: Un formato per lo scambio dati di Google, indipendente dal linguaggio e, poiché è un formato binario, è molto più veloce rispetto all'uso di XML per lo scambio dati, e può essere utilizzato per la comunicazione di dati tra applicazioni distribuite o per lo scambio di dati in ambienti eterogenei. Come formato di trasmissione dati binario efficiente e compatibile, può essere utilizzato in molti campi come la trasmissione di rete, file di configurazione, archiviazione dati, ecc. Google fornisce implementazioni in Java, C++, Python, e ora su Internet esistono implementazioni di linguaggi come C#.

Serializzazione e deserializzazione

XML: Usa l'XmlSerializer fornito con .Net.
Json: Usa ServiceStack.Text, che è più performante di Newtonsoft.Json, ma il più veloce dovrebbe essere fastJSON.net.
Hessian: Uso la libreria HessianCSharp, scaricata da nuget.
Buffer di protocollo: Usando protobuf-net, scaricato da nuget.
Di seguito sono riportate le entità utilizzate nel test.

Il processore i7HQ a 2,6 Hz utilizzato nella macchina di test.
Ecco i risultati del test
Serializzazione


Deserializzazione


Lunghezza del byte dopo la serializzazione


Parliamo prima della serializzazione, qui viene testata rispettivamente 100 volte, 1000 volte, 10000 volte e 100000 volte, l'ordinata è il tempo di completamento, l'unità è millisecondi, si può vedere che testando entro 10000 volte, il consumo di tempo di 4 tipi di serializzazione è molto piccolo, tutto entro 200 millisecondi, dopo 10000 volte, fino a 100000 volte, tutte iniziano a crescere, la peggiore è Xml, la migliore sono i Protocol Buffer, ma quando è entro 10000 volte, L'assia è migliore dei Protocol Buffers.
Non c'è molta differenza all'interno di 10.000 deserializzazioni, ma a 10.000 volte possiamo già vedere che Hessian richiede più tempo, e a 100.000 volte Hessian supera direttamente Xml, il che mi fa sempre pensare che ci sia un problema con il mio codice, e che la migliore performance sia ancora Protocol Buffer.
La lunghezza dei byte serializzati è comprensibilmente la più lunga in Xml, perché il file contiene molti tag finali (),</Name> e Protocol Buffers è ancora il migliore.

In base al grafico sopra, possiamo quasi rapidamente concludere che Protocol Buffers è il migliore, ma penso che dobbiamo comunque valutarlo in modo completo dai seguenti aspetti:
1. Leggibilità: XML e Json sono entrambi testo dopo la serializzazione, e la leggibilità è molto buona; ad esempio, se c'è un errore nel mezzo, possiamo facilmente visualizzare i dati scambiati e persino simulare i dati per testare; Sia il buffer Hessian che quello Protocol Buffer sono binari, e il contenuto è illeggibile dopo la serializzazione, il che avrà un certo impatto sulla risoluzione dei problemi del sistema.
2. Versatilità: XML e JSON sono già vecchi formati di scambio dati, e questi sono i due formati per lo scambio di dati tra sistemi generali. Sia i buffer a Assia che quelli a Protocollo sono relativamente impopolari e vengono usati meno.
3. Comodità: Hessian è in realtà un framework RPC completo, definisci l'interfaccia lato server e implementa l'interfaccia, copia l'interfaccia al client. Dopo una piccola quantità di programmazione, possiamo chiamare il lato server come chiamando un metodo locale, che non è disponibile negli altri tre strumenti, e le prestazioni non sono male.





Precedente:Windows installa il programma di servizio .net/c#
Prossimo:Soluzione StreamReader per caratteri distorti durante la lettura di file
 Padrone di casa| Pubblicato su 31/08/2023 20:57:23 |
Benchmark di prestazioni MessagePack e protobuf-net
https://www.itsvse.com/thread-10655-1-1.html
Disconoscimento:
Tutto il software, i materiali di programmazione o gli articoli pubblicati dalla Code Farmer Network sono destinati esclusivamente all'apprendimento e alla ricerca; I contenuti sopra elencati non devono essere utilizzati per scopi commerciali o illegali, altrimenti gli utenti dovranno sostenere tutte le conseguenze. Le informazioni su questo sito provengono da Internet, e le controversie sul copyright non hanno nulla a che fare con questo sito. Devi eliminare completamente i contenuti sopra elencati dal tuo computer entro 24 ore dal download. Se ti piace il programma, ti preghiamo di supportare software autentico, acquistare la registrazione e ottenere servizi autentici migliori. In caso di violazione, vi preghiamo di contattarci via email.

Mail To:help@itsvse.com