解壓文件的速度瓶頸在硬盤速度。
主流的機械硬盤速度大概在50-150MB/s之間,SSD大概是150-500MB/s,主流的CPU(帶流水線)、內存的速度大概是硬盤速度的100~1000倍左右。
換句話說,如果壹個解壓算法,平均解壓壹個字節消耗的指令數如果少於100個,那麽硬盤速度就很難趕上CPU速度了;如果平均解壓壹個字節消耗的指令數少於1000個,那麽絕大多數機械硬盤很難趕上CPU速度。
簡介
通常情況下,zip的解壓字典只有32K或者64K,解壓的過程中並非每次都搜索完整的字典,所以zip默認配置下很難占滿CPU,如果考慮到多核的話,每個核的負擔可以更低,磁盤IO的負擔會更重,瓶頸效果會更明顯。
比如7zip的LZMA2算法中,把字典配到1G,線程數16的情況下,壓縮需要內存是88G左右,絕大多數PC的內存都不夠用。在超級計算機上壓縮,到普通計算機上解壓就有可能吃滿CPU。