GZip 压缩测试

用.net 自带的 GZipStream 测试,压缩比率用默认值进行测试

对于3K以下的数据进行压缩,发现数据会越压缩越大,对于大于3K的数据进行压缩才会有效果。


而用第三主工具 ICSharpCode.SharpZipLib; 进行压缩,如果都是用默认的值的话,发现效率跟自带的差挺多的。一个数据级别


/// <summary>
        /// GZip 压缩
        /// </summary>
        /// <param name="inBytes"></param>
        /// <returns></returns>
        public static byte[] GZipCompress(byte[] inBytes)
        {


            MemoryStream outStream = new MemoryStream();


            using (MemoryStream intStream = new MemoryStream(inBytes))
            {


                using (GZipStream Compress =new GZipStream(outStream, CompressionMode.Compress))
                {


                    intStream.CopyTo(Compress);
                }


            }


            return outStream.ToArray();


        }




        /// <summary>
        /// GZip 解压
        /// </summary>
        /// <param name="inStream"></param>
        /// <returns></returns>
        public static byte[] GZipDecompress(byte[] inStream)
        {


            byte[] result = null;


            MemoryStream compressedStream = new MemoryStream(inStream);


            using (MemoryStream outStream = new MemoryStream())
            {


                using (GZipStream Decompress = new GZipStream(compressedStream, CompressionMode.Decompress))
                {


                    Decompress.CopyTo(outStream);


                    result = outStream.ToArray();


                }


            }


            return result;


        }


        /// <summary>
        /// 压缩
        /// </summary>
        /// <param name="bt"></param>
        /// <returns></returns>
        public static byte[] t1(byte[] bt)
        {
            MemoryStream outStream = new MemoryStream();


            using (MemoryStream intStream = new MemoryStream(bt))
            {


                using (ICSharpCode.SharpZipLib.GZip.GZipOutputStream Compress = new ICSharpCode.SharpZipLib.GZip.GZipOutputStream(outStream))
                {


                    intStream.CopyTo(Compress);
                }


            }


            return outStream.ToArray();
        }


        /// <summary>
        /// 解压
        /// </summary>
        /// <param name="bt"></param>
        /// <returns></returns>
        public static byte[] t2(byte[] bt)
        {
            byte[] result = null;
            MemoryStream compressedStream = new MemoryStream(bt);
            using (MemoryStream outStream = new MemoryStream())
            {


                using (ICSharpCode.SharpZipLib.GZip.GZipInputStream Decompress = new ICSharpCode.SharpZipLib.GZip.GZipInputStream(compressedStream))
                {


                    Decompress.CopyTo(outStream);


                    result = outStream.ToArray();


                }


            }
            return result;
        }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值