主流的机械硬盘速度大概在50-150MB/s之间,SSD大概是150-500MB/s,主流的CPU(带流水线)、内存的速度大概是硬盘速度的100~1000倍左右。
换句话说,如果一个解压算法,平均解压一个字节消耗的指令数如果少于100个,那么硬盘速度就很难赶上CPU速度了;如果平均解压一个字节消耗的指令数少于1000个,那么绝大多数机械硬盘很难赶上CPU速度。所以,瓶颈在哪,主要看解压的过程中的CPU负担。
通常情况下,zip的解压字典只有32K或者64K,解压的过程中并非每次都搜索完整的字典,所以zip默认配置下很难占满CPU,如果考虑到多核的话,每个核的负担可以更低,磁盘IO的负担会更重,瓶颈效果会更明显。如果要让CPU成为瓶颈,需要调整一些压缩的策略,
比如:1. 字典要更大,查找速度会更慢,如果字典比内存还大就更好了(7zip最大可以配置1G的字典)。2. 文件的信息熵要足够大,换句话说文件本身更难以压缩,比如已经被压缩过的视频文件,这样解压时查字典的负担会更重。3. 解压到内存里,或者至少是SSD里。4. 压缩的时候选择用AES-256加密一下。5. 挑一个性能比较弱的CPU解压。满足以上条件的情况下,就可以让CPU成为瓶颈了。
但这样的条件很难达到,因为满足以上条件,会让压缩的过程变得非常慢,比如7zip的LZMA2算法中,把字典配到1G,线程数16的情况下,压缩需要内存是88G左右,绝大多数PC的内存都不够用。在超级计算机上压缩,到普通计算机上解压就有可能吃满CPU。
对于通常情况下来说,解压文件瓶颈在硬盘,只有在一定特定的场景下,CPU才会成为瓶颈。
补充一点:如果解压的是零碎的小文件,速度没有参考价值。小文件的实际写入开销比文件实际大小要大的多。
⑵ 很多下载的zip压缩文件,压缩率超过99%,解压解半天,简直是浪费时间。为什么不直接让我们下载文件呢
你会发现直接下载可能更浪费时间。
未压缩以现在的网速,有的可能下很久,解压比下载快。
⑶ Rar 与 Zip 谁压缩更快
众所周知RAR的压缩率要略高于ZIP,但这是以牺牲工作效率换取的,这种牺牲值不值得呢?笔者随意做了一个测试,由于太小的文件根本无法察觉,因此测试对象是一个615.6MB的ISO文件,机器配置位P4 1.6A,512MB RAM。结果WinRAR3.30在一般压缩下,使用了30分20秒将文件压缩为607.6MB的RAR文件,而WinZip9.0在一般压缩下,使用了2分40秒将文件压缩为609.2MB的ZIP文件。解压的结果与压缩类似,千分之二的压缩率差距却使用了数十倍的时间,显然ZIP算法的压缩率与工作效率之间的平衡性处理得更好,也就是说性能更优。其实RAR算法在压缩率与工作效率之间的处理也是非常聪明明的,其压缩小文件时损失不易察觉的几秒钟换来总是比ZIP略高一点的压缩率,这给用户留下了极好的印象。
如果是想将小文件打包成一个文件,这样U盘的传输会快很多。
可以右击添加到压缩文件,压缩方式选择不压缩。同时,格式改为zip。
zip快的不是一点两点,快很多。
正如很多街机模拟器支持zip不支持rar这个垃圾格式一样。rar很无耻。