在我的应用程序中,我需要对文本文件的日志进行压缩。
看起来bzip2
和gzip
具有相同的压缩比。
那是对的吗?
答案1
通常,bz2 具有更好的压缩率,并具有更好的可恢复性。
另一方面,gz 更快。
据说 xz 甚至比 bz2 更好,但我不知道时间行为。
答案2
最后更新最大压缩率是 2011 年 6 月(答案于 2015 年 10 月更新)
因此本网站没有提及
当前全球冠军文本压缩器:
cmix
竞赛/基准:
- 维基百科6
18.2% 的压缩1MB 文本文件 enwik6 - 卡尔加里
17.6% 的压缩卡尔加里语料库的 14 个文件(3GB tar 文件) - 赫特奖
15.7% 的压缩100MB 文本文件 enwik8
(但cmix
不是赢家,因为需要太多 RAM,超过 20GB) - Silesia 开源压缩基准
15.7% 的压缩202MB 西里西亚语料库 - 大型文本压缩基准
12.4% 的压缩1GB 文本文件 enwik9
细节:
拜伦·诺尔cmix
自 2013 年以来,基于本书积极开发自由软件 (GPL)数据压缩详解经过马特·马奥尼。Matt Mahoney 也维护了上述一些基准,并提出锌锌合金质量量表(可湿性粉剂),一个命令行增量归档程序。
如果你更喜欢标准的工具(需要更少的 RAM),我推荐:
lrzip
lrzip
是rzip
经过康科利瓦斯.
lrzip
代表两个名称:长距离邮政编码和压缩包.通常比(另一种流行的压缩工具)
lrzip
更好。xz
亚历山大·里奇奥也建议lrzip
。
我最喜欢的是:
zpaq
这“档案专家”,马特·马奥尼,一直致力于帕金森病问卷算法已有十年历史,并在 CPU/内存资源和压缩级别之间提供了最佳折衷。
但是,那最新zpaq
版本在最近的发行版中通常不打包/不可用 :-(
当我有一台新机器并且需要一个非常好的压缩器时,我总是从源代码编译它:https://github.com/zpaq/zpaq
clone https://github.com/zpaq/zpaq
cd zpaq
g++ -O3 -march=native -Dunix zpaq.cpp libzpaq.cpp -pthread -o zpaq
答案3
答案4
bz2 具有更严格的压缩,该算法有更多的选项来寻找冗余来压缩。
gzip 适用于更多工具,并且更跨平台。更多 Windows 工具可以处理 .gz 文件。它是 http 的一部分,因此甚至 Web 浏览器都可以理解它。
在 Linux 上,有一些工具可以让你直接处理压缩文件。zgrep 和 bzgrep 可以在压缩文件中搜索。
如果仅在 Linux 上,我会使用 bzip2,因为它具有稍好的压缩率。