同一个压缩包,别人解压快我一半,差别在CPU还是硬盘?
前阵子帮朋友搬家,他工作室里那台老电脑要处理掉,硬盘里有个 20G 的素材压缩包,是之前外包团队交付的。他让我帮忙导到移动硬盘里,我就顺手在自己机器上也解压了一份,结果两边速度差得有点离谱。
先说配置。他那台是 i5-8400 + 16G 内存 + 一块 SATA 固态,我这边是 i7-12700 + 32G + NVMe 固态。同一个压缩包,都是 WinRAR 解压到本地硬盘,他那边解了将近 8 分钟,我这边 3 分半就完事了。一开始我以为是 CPU 差距,毕竟差了四代,但仔细想想,解压这活儿主要吃的是单核性能,8400 单核也不算太弱,不应该差这么多。
后来我拿自己机器做了个对照实验。先关掉所有后台程序,用资源监视器盯着看,发现解压时 CPU 占用只有 30% 左右,但磁盘活动时间直接顶到 100%。这就有点意思了——瓶颈大概率不在 CPU,而在硬盘的随机读写能力。
为了验证,我把同一个压缩包分别解压到三个位置:NVMe 系统盘、SATA 固态从盘、还有一块老机械硬盘。结果 NVMe 用了 3 分 20 秒,SATA 固态 4 分 50 秒,机械盘直接飙到 12 分钟以上。差距最明显的是解压过程中大量小文件的写入,机械盘那个寻道时间拖后腿太严重了。
再回到朋友那台机器,我让他把压缩包先复制到本地固态再解压,别直接在移动硬盘上操作。他照做之后,时间从 8 分钟降到了 5 分半。虽然还是比我的慢,但至少说明问题不全在 CPU。
还有一个细节,解压软件本身也有影响。我顺手拿 Win解压缩、7-Zip 和 Bandizip 各跑了一遍同样的包,Win解压缩在默认设置下速度居中,但它的多线程解压调度做得不错,小文件多的时候反而比 7-Zip 快个十几秒。不过要注意,它的会员功能里有个“极速解压”模式,我对比了一下,提升大概在 10% 左右,不算质变,免费版完全够用。
所以我的结论是:如果你经常解压大包,尤其是文件数量多、体积碎的包,优先把压缩包放在固态硬盘上操作,比换 CPU 见效快得多。另外,解压软件的线程设置也值得看一眼,默认不一定是最优的。
最后问一句:你们平时解压大文件,会特意先复制到本地盘再解,还是直接在移动硬盘上操作?有没有人对比过不同文件系统的差异,比如 exFAT 和 NTFS 在解压小文件时的表现?
