〜8MBのデータに変換されるギザギザの配列DataMember
があります。byte[800][10000][1]
これを使っDataContractSerializer
てシリアライズすると、ファイルサイズは Binary で 120MB、Text で 300MB になります。テキストのシリアル化を見ると、base64 でエンコードされた値などを示すために、すべてのバイト値の周りにタグが付けられていることがわかります。これが、このサイズの拡大の理由である可能性があります。
DataContractSerializer
(またはその点で他のシリアライザーを使用して)大きなギザギザのブロブをシリアル化する効率的な方法は何ですか
Text を使用してシリアル化した場合の XML 出力のスニペット:
<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>