需求:将内存中的string压缩后再通过网络传输
测试方法有:
- C# 自带GZip压缩算法
- 使用7z的开源算法
参考网址:
1.自带
C# 压缩/解压字符串 - 吃辣椒的小毛驴 - 博客园www.cnblogs.com2. 7z
Compressing using the 7Zip LZMA algorithm in C# beats GZipStreamwww.splinter.com.au![8b38312e670ade3a801a8f76bb5525ef.png](https://i-blog.csdnimg.cn/blog_migrate/cd1428cc68d118d4d89aa2cd01c8dcdb.jpeg)
原始String大小:2M
测试电脑:Thinkpad T570
两种方法压缩结果:
方法 压缩后大小 耗时 压缩比
- 自带 840K 0.29S 42%
2. 7z 470K 2.5S 23%
讨论:
- 7Z 压缩完文件更小,文件较大时,压缩速度慢
- C# 自带GZip算法压缩完的文件较大,但时间较快
疑惑:
- 没想到7z的速度会比Gzip慢这么多,原因未知
结论:
- 要根据实际情况选择合适的方案,如果压缩时间超过了网络传输时间,就会得不偿失
参考:
https://www.7-zip.org/sdk.htmlwww.7-zip.orgLZMA SDK (Software Development Kit) LZMA SDK (Software Development Kit)www.7-zip.org