Domanda

sia in termini di analisi (la serializzazione, deserializzazione) e l'invio di pacchetti sulla rete c'è qualche buona stima delle differenze di prestazioni tra la serializzazione binaria e XML?

È stato utile?

Soluzione

No.

Dipende molto da che tipo di dati è all'interno del documento XML stesso. Se si dispone di un sacco di dati strutturati, l'overhead per XML sarà grande. Ad esempio, se i dati si presenta come:

<person>
  <name>Dave</dave>
  <ssn>000-00-0000</ssn>
  <email1>xxxxxx/email1>
</person>
...

Avrete molto di più in testa che se si dispone di un documento XML che assomiglia:

<book name="bible">
 In the beginning God created the heavens and the earth. 
 Now the earth was formless and empty ... 
 And if any man shall take away from the words of the book of this prophecy, God shall take away his part out of the book of life, and out of the holy city, and from the things which are written in this book. He which testifieth these things saith, Surely I come quickly. Amen. Even so, come, Lord Jesus.
</book>

Quindi non è davvero una domanda giusta. Dipende molto sui dati che si intende inviare, e come / se si sta comprimerlo.

Altri suggerimenti

La più grande differenza tra BinaryFormatter e serializzazione XML è la portabilità; BinaryFormatter è difficile da garantire tra le versioni, quindi è solo veramente adatto per la conservazione o il trasferimento a breve termine.

Tuttavia, è possibile ottenere il meglio di entrambi, e hanno più piccolo e avere più veloce, utilizzando su misura serializzazione binaria - e non hanno nemmeno bisogno di fai da te ;-p

protobuf-net è un'implementazione di .NET di protocollo di Google buffer binario spec serializzazione ; è più piccolo di uno o XmlSerializer BinaryFormatter, completamente portatile (non solo tra le versioni - è possibile caricare un flusso pb, per esempio, Java, ecc), estensibile, e veloce. E 'anche abbastanza esaurientemente testato, con un discreto numero di utenti.

Un elenco completo di dimensioni e velocità, coprendo XmlSerializer, BinaryFormatter, DataContractSerializer e protobuf-net è qui .

Istintivamente si vorrebbe dire che binario è più efficiente, ma in realtà dipende dai dati che vengono serializzati.

Leggi questo articolo: http://www.nablasoft.com/alkampfer/index.php/2008/10/31/binary-versus-xml-serialization-size/

solo sottolineando la prestazione non è l'unico parametro si consiglia di guardare.

  • facilità di costruzione. Avete diversi giorni / settimane per costruire un serialiser / di routine deserialiser e testare a fondo o potrebbe allora essere meglio spesi sulle caratteristiche.
  • Facilità di consumare i dati. Un client può utilizzare un pre-costruito parser open-source o fare hanno bisogno per implementare una serie di (potenzialmente buggy) Codice stessi?
  • Facilità di debugging. Sarà in grado di visualizzare i dati in transito aiuto per eseguire il debug? Poi un formato binario tenderà a offuscare eventuali problemi.
  • Qual è il costo di mantenimento per ogni metodo?

Personalmente, vorrei utilizzare uno standard XML pubblicato e librerie fonte di analisi aperti fino a un collo di bottiglia è dimostrato dalla prova vera e propria.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top