0
我有一个巨大的大型数据集,其中包含近700列,我使用GZipStream进行压缩和解压缩。数据压缩后的压缩效果很好,尺寸接近40mb,但在解压缩过程中出现“系统内存不足”异常。 I,M用下面的代码压缩及解压缩:GZipStream在解压缩时出现内存不足异常
压缩:
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和内存的高度,不断running..we已经因为它不断使用大量的内存和CPU – saadsaf
我用同样的方法你的问题是运行,强制停止它基于关闭,我测试了超过100MB的数据,它运行良好。你的实现实际上并没有压缩任何东西,这就是你首先遇到问题的原因 –