电脑如何将7zip设置为默认 电脑的解压速度好慢啊!1?

[更新]
·
·
分类:互联网
2735 阅读

电脑如何将7zip设置为默认

电脑的解压速度好慢啊!1?

电脑的解压速度好慢啊!1?

主流的机械硬盘速度大概在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才会成为瓶颈。
补充一点:如果解压的是零碎的小文件,速度没有参考价值。小文件的实际写入开销比文件实际大小要大的多。
参考:
解压缩的速度和什么有关? - 计算机
解压缩操作为什么不吃CPU? - 计算机

什么压缩软件纯净无毒?

前言果然都是windows重度用户,本文带你用Linux的角度看“压缩”!
划重点相对于windows下的鼠标点点拖拖,linux在终端,大概率是用不着界面操作文件和文件夹的。
Linux是开放源代码的,由数量庞大的GNU软件搭建而成。本文的压缩软件,无毒是肯定的(因为犯不着,留后门,是不想在开源界混了吗?)。
打包压缩,解压缩软件千千万,打包解包的指令只一个——tar。
好用指出,我想都不用多说了吧。
使用man tar查看该手册,重点的功能描述,和示例都圈出来了。
因为一般的压缩软件,仅能对单个文件进行压缩,如果对于目录,是无法操作的。所以这时候需要“打包”,把一堆杂七杂八的文件,甭管什么往一个包里一装。这就是一个整体,然后调用压缩指令,就可以了。这也是linux系统实践中最常用的方法。
英文的不直观,下面是中文的参数注释。
压缩软件终于说到压缩软件了。Linux下还有不少选择,常见一些压缩文件的扩展名会有
*.tar, *.tar.gz, *.tgz, *.gz, *.Z, *.bz2, *.xz我们知道,linux的文档扩展名是没有用的,这样写只是用于标识,该文档是基于那个软件产生的。
Linux下用的最多的,当属 gzip,bzip2,和xz。由于使用习惯,我们重点介绍一下gzip这款压缩软件。
gzip是GNU软件,业已取代了较为古旧的compress指令。完全支持windows下使用较高的zip文件的压缩解压。
后来GNU又开发出了bzip2和xz,这些压缩效果比较好,效率比较高的软件。但是这3款软件,通畅仅能针对一个文件进行压缩和解压缩。这样的话,如果操作为数众多的文件,岂不崩溃!
所以,就体现出上一节所说tar打包指令的重要性。
这些工具联合起来,威力无比!
言归正传。下面是gzip的常用参数和使用方式。
gzip [-cdtv#] 文件名其中,
-c 将压缩数据输出到终端stdout
-d 解压缩
-t 用来减压一个压缩文件的一致性,检查文件是否有误
-v 可视化显示原文件,压缩文件压缩比等信息
下面通过例子来说明其用法。我们使用图片展示这个过程。
前提是我们创建了一个目录
mkdir -pv /tmp/gzip_demo然后创建一个随机文件,并填充一些内容
openssl rand -base64 1024984 log生成的单文件log使用gzip进行压缩
gzip -v log可以看到,压缩比率和目标文件名。log文件被替换。这是gzip的工作原理。
在默认情况下,原本的文件会被压缩为 gz 为后缀的文档,源文件不复存在。这与windows下的winrar,7zip等软件完全不同,一定要注意,注意,注意!
组装起来,更强大!Linux下的指令,通过管道符的助力,可以让你的代码随着思绪飞舞,一行解决战斗,瞬间搞定!
下面结合打包指令tar,进行一些更为复杂的压缩操作。
示例1:打包某几个目录,但是排除一些特定目录
例如,打包 /etc和/root目录,但是 /root/etc* 开头的文件,不需要打包和压缩。将新生成的压缩包放置在 /root/system.tar.gz 内。
指令需要像下面这样写:
tar -zcv -f --exclude/root/etc* --exclude/root/system.tar.gz /etc /root逐一说明参数的用法:
-z 使用 gzip 压缩
-c 创建文档
-v 展示详细信息
--exclude 指定不包含规则
因为目标文档也在压缩文档内,所以一定要追加到 --exclude 选项内。否则死循环。
示例2:仅备份/etc目录下修改日期在2019-10-01之后的文件
直接上指令:
tar -zcv -f --newer-mtime2019/10/01 /etc/*主要使用了 --newer-mtime 选项。别的都与上一条一致。
结语好了,简短写到这儿吧。Linux下工具很多,效率很高,持续多年生产环境打磨,性能稳定的一匹。你值得信赖。
windows下,动不动就要授权,动不动就要弹广告的压缩软件,真的不堪回首。
也许只有Linux才能给你清洁无毒,白莲花般的压缩体验!
Happy coding :-)
【本文由 @程序员小助手 发布,持续分享编程的故事,欢迎关注】