Mam poszarpaną tablicę DataMember
, która zwraca byte[800][10000][1]
, co przekłada się na ~ 8 MB danych. Po serializacji przy użyciu DataContractSerializer
zmienia się w plik o rozmiarze 120 MB dla Binary i 300 MB dla tekstu. Patrząc na serializację tekstu, wskazuje on, że umieszcza znacznik wokół każdej wartości bajtu, aby wskazać, że jest to wartość zakodowana w base64 itd., Która może być przyczyną tego powiększenia rozmiaru.Serializowanie poszarpanej tablicy bajtów wydajnie
Jaki jest skuteczny sposób do serializacji dużą poszarpaną blob korzystając DataContractSerializer
(lub innego serializatora dla tej sprawy)
urywek wyjście XML gdy szeregowane za pomocą Tekst:
<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>
Próbowałem tego. W tym przypadku było o 10 MB mniejsze. – LadderLogic