0
私は、圧縮と解凍にGZipStreamを使用して、ほぼ700個のカラムとIを含む大規模な大規模なデータセットを持っています。圧縮はうまく動作し、圧縮後のデータセットのサイズは約40MBですが、復元中は「」というメッセージが表示されます。「システムのメモリが不足しています。 I、圧縮と解凍のためのコードの下に使用しては:mGZipStream圧縮解除時のメモリ不足例外
圧縮:
public static Byte[] CompressDataSet(DataSet dataset)
{
Byte[] data;
MemoryStream mem = new MemoryStream();
GZipStream zip = new GZipStream(mem, CompressionMode.Compress);
dataset.WriteXml(zip, XmlWriteMode.WriteSchema);
zip.Close();
data = mem.ToArray();
mem.Close();
return data;
}
解凍:
public static DataSet DecompressDataSet(Byte[] data)
{
MemoryStream mem = new MemoryStream(data);
GZipStream zip = new GZipStream(mem, CompressionMode.Decompress);
DataSet dataset = new DataSet();
dataset.ReadXml(zip, XmlReadMode.ReadSchema);
zip.Close();
mem.Close();
return dataset;
}
をGZipStream場合は、他の圧縮ライブラリをお勧めしてください。大規模な大規模データセットには最適ではない/適切ではありません。事前に感謝します
あなたは上記の規定approcah圧縮は、それは私があなたの質問があり、同じアプローチを使用しています巨大なメモリとCPU – saadsaf
を使用して、実行中に続けるよう強制的にそれを停止している非常にCPUとメモリを使用してrunning..weに保ちます私は100MBを超えるデータでテストしたところ、正常に動作しました。あなたの実装は実際に何かを圧縮していないので、なぜあなたは最初に問題を抱えているのですか? –