有怪兽,有怪兽 - 通过MONSTER OF COMPRESSION选择压缩算法
2009-03-08 18:52
267 查看
去年由于工作关系,需要给Memcached选择一种数据压缩算法,参考了2008版的MONSTER OF COMPRESSION,现在2009年度的又新鲜出炉了,有需要的朋友可以去下面看看
由于用于压缩缓存数据,所以重要指标是压缩速度和解压速度,直接参考Ranked on Time of Compression表和Ranked on Time of Decompression 表
可以发现排在前列的算法就这么几个,而且基本上都是LZ帮派的,其中又以LZ77分舵的气焰最盛,那个速度叫一个块,比7Zip要快15倍,比压缩比最高的NANOZIP要快70多倍。由于MONSTER OF COMPRESSION的压缩测试数据包括非压缩的图片,二进制文件(包括exe和dll),压缩音频,视频等等,LZ帮派基本上压缩率是比较惨的(1G的数据压缩到700多M),但是Memcached缓存的都是什么,都是序列化后的对象,那不就是XML文件吗(当然也可以使用二进制序列化,不在讨论之列)。于是本着认真负责的态度,本人决定测试一下LZ帮的文本压缩能力。
找来找去,去年排名前几的算法,只有QuickLZ(07年还是排名第五的大怪兽今年不知道由于什么原因,没有测试数据)提供了可执行程序(最重要是还有C#版本的库),那就用QuickLZ粗略测试了一下,测试使用了对象序列化后产生的XML文件,具体的成绩已经有些模糊,压缩比应该是在50%左右,这个成绩还真不错,完全可以满足要求。不过最后由于种种原因,没能应用到项目中,所以没法提供更多资料了,大家有兴趣可以自己测试一下实际效果到底如何。
由于用于压缩缓存数据,所以重要指标是压缩速度和解压速度,直接参考Ranked on Time of Compression表和Ranked on Time of Decompression 表
可以发现排在前列的算法就这么几个,而且基本上都是LZ帮派的,其中又以LZ77分舵的气焰最盛,那个速度叫一个块,比7Zip要快15倍,比压缩比最高的NANOZIP要快70多倍。由于MONSTER OF COMPRESSION的压缩测试数据包括非压缩的图片,二进制文件(包括exe和dll),压缩音频,视频等等,LZ帮派基本上压缩率是比较惨的(1G的数据压缩到700多M),但是Memcached缓存的都是什么,都是序列化后的对象,那不就是XML文件吗(当然也可以使用二进制序列化,不在讨论之列)。于是本着认真负责的态度,本人决定测试一下LZ帮的文本压缩能力。
找来找去,去年排名前几的算法,只有QuickLZ(07年还是排名第五的大怪兽今年不知道由于什么原因,没有测试数据)提供了可执行程序(最重要是还有C#版本的库),那就用QuickLZ粗略测试了一下,测试使用了对象序列化后产生的XML文件,具体的成绩已经有些模糊,压缩比应该是在50%左右,这个成绩还真不错,完全可以满足要求。不过最后由于种种原因,没能应用到项目中,所以没法提供更多资料了,大家有兴趣可以自己测试一下实际效果到底如何。
相关文章推荐
- 编写Shell程序,通过编写完成compress1、decompress1函数,选择“压缩”或“解压”以及输入文件名,来自动完成文件的压缩、解压过程。
- 是否需要对网络传输数据进行压缩?如何选择压缩算法?
- 如何有效减小NK?(通过选择压缩字库是比较好的方法)
- 是否需要对网络传输数据进行压缩?如何选择压缩算法?
- 选择压缩算法的经历 (by quqi99)
- 通过Java测试几种压缩算法的性能(附测试代码下载)
- 文本压缩算法的对比和选择
- 文本压缩算法的对比和选择
- 是否须要对网络数据传输进行压缩?怎样选择压缩算法?
- 如何有效减小NK?(通过选择压缩字库是比较好的方法)
- 手机通过页面调用摄相头或选择照片压缩后并显示
- 通过HTTP压缩来提高WebService性能的一些好资源(some good resource about WebService with HTTP-Compression )
- php通过ini_set调用output_compression压缩网页
- tomcat启动变慢 通过手动选择算法来修缮让它启动速度变快
- Hadoop压缩算法说明与选择
- 笔试算法题(56):快速排序实现之非递归实现,最小k值选择(non-recursive version, Minimal Kth Selection of Quick Sort)
- 通过 C# 使用 J# 类库中的 Zip 类压缩文件和数据
- 第16周外部排序【项目-1】置换-选择算法模拟
- 【数据压缩】基于字典的压缩算法 DICTIONARY TECHNIQUES
- 算法:选择和冒泡排序法