3

我看过许多“快速压缩”库,但它们都具有快速解压缩而不是快速压缩的特点。

我正在开发一个快速压缩比快速解压缩更受重视的系统。有没有这样的算法?如果是这样,是否有实现它的 C 库?

更新:我正在压缩物理内存页面,并且我需要的压缩吞吐量等于或快于直接复制。我正在使用一种检测算法来发现具有低熵的页面,以保证我尝试压缩的页面实际上是可压缩的。

4

4 回答 4

4

好吧,您可以随心所欲地使任何东西变慢,但是我不知道有任何算法在压缩时固有地快而在解压时却很慢。

如果您想象如果您允许解压缩速度较慢,则存在某种允许压缩速度更快的交易,那么不,没有。

lz4提供非常快速的压缩,甚至更快的解压缩。

于 2013-05-16T05:27:17.067 回答
2

文本压缩基准有大量关于压缩性能的数据,包括一些图表。虽然它专注于高压缩,但它应该让您很好地了解速度、内存使用和压缩比之间的权衡。压缩器大致分为两类:压缩和解压缩所需时间相似的对称压缩器(这些压缩器也往往是高压缩率的慢压缩器),以及解压缩比压缩更快的非对称压缩器(这些更受欢迎)。在任何情况下,我都知道压缩比解压缩快得多。

我所知道的最广泛使用的“快速”压缩器是snappyLZO。@MarkAdler 提到lz4看起来也不错。

于 2013-05-18T12:43:33.390 回答
1

你试过密度吗?

这是一个具有极快压缩速度(比 lz4 更快)的 BSD 库。解压速度也超级快,如以下基准中所述。

为了进行测试,有一个名为“sharc”的开源命令行客户端,也可以在 github 上找到。

于 2013-12-09T20:20:45.220 回答
0

您可以做的最好的事情是查看压缩基准。他们至少报告了两个数字:压缩大小和压缩速度。在您的情况下,解压缩速度无关紧要,因此只需查看压缩速度。

一些算法将形成帕累托前沿。选择其中之一。

于 2013-05-16T13:19:05.890 回答