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的數據,它運行良好。你的實現實際上並沒有壓縮任何東西,這就是你首先遇到問題的原因 –