Skip to content

https://www.criwits.top/missing/archive-formats-and-tools.html 看了一遍压缩这章,写得挺清楚的,但有几个实际用的时候经常碰到的点没提到,建议补上。 #33

Description

@ClassTechStar

**1. 压缩的时候把线程数拉满,速度差很多

现在介绍了各个工具,但没说线程数这个事。其实压大文件的时候,开多少线程直接决定要等多久。我自己测下来大概是这样:

  • NanaZip 和 PeaZip 最多能开到 64 线程
  • Bandizip 免费版上限是 16 线程
  • Windows 自带的资源管理器压缩 ZIP 基本只用 1 到 2 个线程,慢得离谱

所以压大文件的时候,在高级设置里把线程数拉到 CPU 核心数(或者直接拉满),能省不少时间。资源管理器那个就别用来压大东西了。

  1. "固实"到底是什么意思

7z 那里说了压缩率高,但没解释"固实"这个选项,很多人不知道该不该开。其实就是把所有文件拼成一个连续的数据流再压,文件被切成若干个一样大的块,跨文件的重复内容能一起编码,所以压出来更小。

好处是压缩率高,特别是一大堆小文件的时候很明显。坏处是解压包里任意一个文件都得从头扫,往包里加东西或者删东西也得重新压整个包,比较慢。7z 默认是开固实的,ZIP 一般没这功能。

  1. MP4、MKV 这种视频,用 zip 和 7z 都压不动

这个挺多人踩坑的——视频文件本身就已经压过一遍了(H.264、H.265 这些编码都是有损压缩),你再拿 ZIP 或者 7z 去压,基本只能省几个百分点,没什么意义。

真想给视频瘦身,得用转码工具(HandBrake、FFmpeg 之类的),思路是这几个:

  • 降码率:比如从 8Mbps 降到 4Mbps,体积直接减半
  • 换编码:H.264 转 H.265 或者 AV1,画质差不多的情况下体积能小 30% 到 50%
  • 降分辨率或者帧率:1080p 转 720p,60帧转30帧

简单说就是:视频文件的"压缩"得用视频转码工具,不是压缩软件该干的活。

 4. 字典大小调多大,直接决定吃多少内存、压多小

这个是 7z 压缩设置里最关键的一个参数,但教程里完全没提。简单说,字典就是压缩算法能往回看多少字节来找重复内容——你现在看到一串数据,如果之前出现过一模一样的,就不用再存一遍了,记个坐标就行。这个"能往回看的范围"就是字典大小。

几个实际的数字(LZMA / LZMA2 算法):

  • 压缩的时候内存占用大概是字典大小的 11 倍,解压的时候只需要字典大小那么多
  • 16MB 字典(正常模式默认)压缩时大概吃 180MB 内存
  • 64MB 字典(极限模式默认)大概吃 700MB
  • 256MB 字典要吃将近 3GB
  • 512MB 字典直接 5.6GB 起步

所以不是越大越好。字典大了能找到更远距离的重复,压出来更小,但内存和时间成本涨得很快。而且到后面边际递减很明显——从 16MB 翻到 32MB 提升挺大,从 256MB 翻到 512MB 可能就多压了百分之一二。

这几个点都是实际用的时候经常碰到的,补上的话这章会更实用。**

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions