解压文件的瓶颈是硬盘的速度。
普通机械硬盘的速度约为50-150MB/s,SSD的速度约为150-500MB/s。普通CPU(流水线)和内存的速度约为100~。比硬盘快1000倍。
换句话来说,如果解压算法平均需要少于100条指令来解压一个字节,那么在平均数量为1个字节的情况下,硬盘速度将很难跟上CPU速度。;解压一个字节所消耗的指令不到1000条指令,因此大多数机械硬盘很难跟上CPU的速度。
简介
一般情况下,zip的解压字典只有32K或64K。解包时并不是每次都查找完整的字典,所以zip。默认配置下很难占用整个CPU。如果考虑多核,每个核的负担可能会更低,磁盘IO的负担会更重,瓶颈效应会更明显。
例如,7zip的LZMA2算法中,如果分配字典为1G,线程数为16,则压缩所需内存约为88G,这对于大多数PC来说是不够的。如果在超级计算机上压缩并在普通计算机上解压缩,CPU可能已满。
解压的整体流程如下:
由于文件是从硬盘读入内存的,所以如果文件很大,内存消耗就很明显。
CPU。解压、CPU占用压缩比越高,CPU消耗越多。
解压后的文件基本上不会写入内存。;
将文件从内存写入硬盘。
第一步和第三步都会消耗内存。文件越大,CPU必须首先读写内存的次数就越多,因为它不直接与硬盘交互。第二步消耗CPU,压缩比越高,消耗越明显。
上一篇:渲染吃内存还是吃显卡
下一篇:大型excel吃内存还是cpu