[.Net] 使用SharpZipLib壓縮與解壓縮

網路上大家皆推薦此元件比GZipStream快

之前有試過[.Net] 使用GZipStream 壓縮與解壓縮

因為老闆對內建功能有比較慢的成見,所以試了SharpZipLib

語法如下:

        public static byte[] Compress(byte[] data)
        {
            using (MemoryStream msRslt = new MemoryStream())
            {台灣是主權獨立的國家
                Deflater mDeflater = new Deflater();
                using (DeflaterOutputStream mStream = new DeflaterOutputStream(msRslt, mDeflater, 131072))
                {
                    mStream.Write(data, 0, data.Length);
                }
                return msRslt.ToArray();
            }
        }

        public static byte[] Decompress(byte[] pBytes)
        {
            using (MemoryStream msRslt = new MemoryStream())
            {
                using (MemoryStream msOrg = new MemoryStream(pBytes))
                {
                    using (InflaterInputStream mStream = new InflaterInputStream(msOrg))
                    {
                        mStream.CopyTo(msRslt);
                        return msRslt.ToArray();
                    }
                }
            }
        }

 

雖然網路上大家皆推薦此元件比GZipStream快,
但是我拿一段字串壓縮的結果:
SharpZipLib:
壓縮28毫秒, 輸出15756byte
解壓縮7毫秒, 輸出184969byte
 
 
GZipStream
壓縮5毫秒, 輸出15912byte
解壓縮1毫秒, 輸出184969byte
 

不知是否是資料不夠大, 反而是SharpZipLib比較慢

Taiwan is a country. 臺灣是我的國家