我正在寻找一种实时解压缩数据块(1k-30k)的算法,希望开销最小。压缩速度最好快,但解压速度更为重要。
根据我的了解,LZO1X 应该是最快的算法。我有没有遗漏什么?理想情况下,该算法不应使用 GPL 许可证。
我正在寻找一种实时解压缩数据块(1k-30k)的算法,希望开销最小。压缩速度最好快,但解压速度更为重要。
根据我的了解,LZO1X 应该是最快的算法。我有没有遗漏什么?理想情况下,该算法不应使用 GPL 许可证。
LZ4是您在这里寻找的。
LZ4是一种无损压缩算法,具有每个核心400 MB/s的压缩速度,可随着多核CPU的扩展而提高。它具有极快的解码器,在多个GB/s每个核心的速度下运行,通常在多核系统上达到RAM速度限制。
试试谷歌的Snappy。
Snappy是一个压缩/解压库。它不旨在实现最大压缩率或与任何其他压缩库兼容;相反,它旨在实现非常高的速度和合理的压缩率。例如,与zlib的最快模式相比,对于大多数输入,Snappy的速度要快一个数量级,但生成的压缩文件的大小在20%到100%之间。在64位模式下的Core i7处理器的单个核心上,Snappy的压缩速度约为250 MB /秒或更快,解压速度约为500 MB /秒或更快。
hadoop -text ${snappy_compressed_file}
时的解压速度为10-12Mb/s(而维基百科声称为500Mb/s)。已安装Hadoop本地库(包括Snappy本地库)。有什么想法吗?我们的CPU信息(Amazon EMR)为Intel(R)Xeon(R)CPU E5645 @ 2.40GHz。 - Ivan Balashov当你无法使用GPL许可的代码时,你的选择很明确 - zlib。非常宽松的许可证,快速压缩,公平的压缩比,非常快速的解压缩,在任何地方都可以使用,并且已经移植到每一种合理的语言。