Сжатие сильно загружает процессор. Может быть, это ... это просто, сколько времени это займет.
Попробуйте DotNetZip - не уверен, что быстрее, но он бесплатный, его легко попробовать.
В DotNetZip есть GZipStream, который заменяет GZipStream в .NET BCL.
Поскольку вы выполняете GZIP, а не ZIP, вам нужен только Ionic.Zlib.dll, а не Ionic.Zip.dll. Первое является строгим подмножеством второго.
РЕДАКТИРОВАТЬ : пример кода
using (System.IO.Stream input = System.IO.File.OpenRead(fileToCompress))
{
using (var raw = System.IO.File.Create(outputFile))
{
using (Stream compressor = new GZipStream(raw, CompressionMode.Compress))
{
byte[] buffer = new byte[WORKING_BUFFER_SIZE];
int n;
while ((n= input.Read(buffer, 0, buffer.Length)) != 0)
{
compressor.Write(buffer, 0, n);
}
}
}
}
(GZipStream в приведенном выше коде предоставляется Ionic.Zlib.dll.)