张成岗(CZ)的博客世界分享 http://blog.sciencenet.cn/u/zcgweb 脑损伤与脑保护;神经认知;生物信息;蛋白质组;辐射损伤与防护

博文

[转载]谁才是压缩的王者?7z 还是 xz

已有 3030 次阅读 2021-8-16 11:48 |系统分类:科研笔记|文章来源:转载

谁才是压缩的王者?7z 还是 xz

冯通

冯通

IQ catch chichen

关注他

22 人赞同了该文章
来源: https://zhuanlan.zhihu.com/p/20926080

发现 kernel.org 还有一些 gnu 程序都换成了 xz 作为压缩方式,忍不住好奇

不过大神们都用 xz 了,那肯定是说 xz 比 gzip 好

先执行 xz 试一下,我去,比 gzip 慢了10倍!gzip 5秒能搞定的东西,xz 要几十秒,压缩出来的东西确实更小了一点

不甘心,看看 man xz ,咦发现 xz 支持多线程,只需 xz -T0 就可以自动按机器线程数多线程执行了

结果试了好几次,xz 还是和之前一样慢,上网查查怎么回事呗,原来只有 xz 5.2 以上才支持多线程,坑爹的 man,不会就别写在自己的说明书里好不好!

下载编译安装新的 5.2.2 xz,压缩一下 cpu 直接飙到30倍,那叫一个爽,压缩耗时也一下子变短了,甚至超越了 gzip

那具体数据是怎样的呢,压缩两个性能指标最关键,一个是耗时,一个是压缩比,压缩比就是压缩后文件大小 除以 源文件大小

耗时


xz 多线程最快,但只比 gzip 快一丢丢

随手拿了一个近 300M 的文件压缩对比一遍,xz 和 7z 压缩最狠,压到50M了, 相当于 1/6,gzip 效果最差,差不多 1/3 ,但实际差距也就在一倍之内


附上压缩比

xz 和 7z 为啥会表现这么接近呢?

原来是他们都使用了一个开源算法和库 LZMA,系统中必须有这库才可以运行哦

xz 和 bzip2 还有 gzip 一样,附带了一堆附加工具

  • xzgrep

  • xzcat

  • xzdiff

  • xzmore

xz 虽然只是压缩比占优,但在关键时刻非常有用,比如 logrotate 我需要多存几天日志,那就需要非常狠的压缩

logrotate 默认是 gzip 来压缩的,如何改成 xz 呢?

# logrotate.conf

/data/xxx.log
{
    size 40G
    dateext
    dateformat -%Y%m%d-%s
    rotate 15
    compress
    compresscmd /usr/local/bin/xz
    uncompresscmd /usr/local/bin/unxz
    compressoptions "--threads=0"
    compressext .xz
    missingok
    notifempty
    sharedscripts
    postrotate
        /bin/kill -HUP `cat /var/run/syslogd.pid 2> /dev/null` 2> /dev/null || true
    endscript
}




https://blog.sciencenet.cn/blog-40692-1300023.html

上一篇:[转载]Linux 高压缩率工具 XZ 压缩详解
下一篇:[转载]关于发布2021年全国博士后创新创业大赛揭榜领题赛项目榜单的公告
收藏 IP: 125.34.28.*| 热度|

0

该博文允许注册用户评论 请点击登录 评论 (2 个评论)

数据加载中...

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-12-28 13:22

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部