У меня есть массивный большой набор данных, который содержит почти 700 столбцов, и я использую GZipStream для сжатия и распаковки. Сжатие работает нормально, и размер набора данных после сжатия составляет почти 40 МБ, но во время распаковки я получаю исключение «системе не хватает памяти». Я использую приведенный ниже код для сжатия и распаковки:
Сжатие:
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 не оптимален/подходит для массивных больших наборов данных. заранее спасибо