为何我用System.IO.Compression.GZipStream解压缩,速度这么慢?

    技术2022-05-20  48

    写出如下的代码,让我很是费力。 .net 提供了System.IO.Compression.GZipStream的压缩示例,却没有很好的解压缩的代码。 无奈自己实现了一段,但是在解压一段压缩后成为1.16MB,而原始数据为15MB的数据时, 竟耗时达3000毫秒左右! 不知原因为何,请高手不禀赐教! 先贴一下代码:

    public object DeCompression(byte[] request) { object ob = new object(); Stream sourceStream = new MemoryStream(request); System.IO.Compression.GZipStream zipStream = new System.IO.Compression.GZipStream( sourceStream, System.IO.Compression.CompressionMode.Decompress); byte[] buffer = new byte[20480]; byte[] bt = new byte[0]; int iread = 0; do { iread = zipStream.Read(buffer, 0, 20480); byte[] bswap = new byte[bt.Length + buffer.Length]; Buffer.BlockCopy(bt, 0, bswap, 0, bt.Length); Buffer.BlockCopy(buffer, 0, bswap, bt.Length, buffer.Length); bt = bswap; bswap = null; GC.Collect(); } while (iread > 0); zipStream.Close(); sourceStream.Close(); MemoryStream ms = new MemoryStream(bt); ob = DeSerializeBinary(ms); ms.Close(); return ob; }


    最新回复(0)