Ho una matrice seghettata DataMember
che restituisce byte[800][10000][1]
che si traduce in ~ 8 MB di dati. Quando serializzato usando DataContractSerializer
si trasforma in una dimensione del file 120 MB per binario e 300 MB per testo. Osservando la serializzazione del testo, indica che inserisce un tag attorno a ogni valore di byte per indicare che è un valore codificato base64 ecc., Che potrebbe essere il motivo dell'ampliamento di questa dimensione.Serializzare un array di byte frastagliato in modo efficiente
Qual è un modo efficace per serializzare un grande blob frastagliato utilizzando DataContractSerializer
(o qualsiasi altro serializzatore per questo)
frammento di output XML quando serializzato utilizzando il testo:
<a:ArrayOfbase64Binary><a:base64Binary>CQ==</a:base64Binary><a:base64Binary>Bw==</a:base64Binary><a:base64Binary>BQ==</a:base64Binary><a:base64Binary>AA==</a:base64Binary><a:base64Binary>AQ==</a:base64Binary><a:base64Binary>AA==</a:base64Binary><a:base64Binary>BA==</a:base64Binary><a:base64Binary>Bg==</a:base64Binary><a:base64Binary>CA==</a:base64Binary><a:base64Binary>AA==</a:base64Binary><a:base64Binary>AA==</a:base64Binary><a:base64Binary>AA==</a:base64Binary><a:base64Binary>AA==</a:base64Binary><a:base64Binary>AA==</a:base64Binary><a:base64Binary>AA==</a:base64Binary><a:base64Binary>AA==</a:base64Binary>
Ho provato quello. Era più piccolo di 10 MB se quello. – LadderLogic