文章目录

  • 原理记录
  • 测试过程
  • 结论

原理记录


划重点: 压缩率取决于文件的信息熵,文件的信息熵越小,被压缩后的文件体积越小,因此文件压缩有一定的限度。

举个栗子(仅说明原理,不涉及实际算法):

一个文件内容为:abc123qqqq6562abc123abc123abc123

压缩时,令1=abc123,这个对应关系即所谓的字典,则压缩后文件变为1qqqq6562111,解压即还原过程。

一些文本文件之所以能被压缩的很小,是由于文件内容有很多内容是重复的,可以被替代掉,这也解释了为什么很多代码的压缩包只有几十兆,而解压后却能达到几个G的大小。

测试过程


测试文件信息:
             包含一个mp4视频的文件夹

  • zip
    使用360ZIP,参数设置如下:

  • rar
    rar格式已申请专利,所以相关产品属于付费产品,使用winrar,参数设置如下:


  • 7z
    使用7z-zip,参数设置如下:

结论


结果对比:


使用7z-zip,压缩算法为LAMA,得到如下结果:

由对比结果可见:压缩算法的选择,对压缩率影响很大,同样的zip,使用LAMA算法也可以达到7z相同的效果!


参考文献:
如何压缩文件到最小(压缩参数调整教程 for 7z)

rar、zip、7z等压缩率的测试相关推荐

  1. android解压rar方法,安卓手机如何解压rar/zip/7z等压缩包 详细图解教程

    由于宅男吧论坛的资源大部分是通过 不过教程最后,关于(7z.001.7z.002之类的分卷文件),像这种分卷文件, 当时想着软件都是"教科式"操作,应该一看就会用了,可是依旧有部分 ...

  2. gz rar zip 7z bz2 tgz压缩率比较,以及做一些简单的关于压缩包介绍

    经过我自己的测试和网上的一些解释,压缩率比较为: zip<gz(tar.gz tgz)<rar<bz2<7z 一些简单的说明: .tar只是一种打包,无压缩 .tgz是tar. ...

  3. Linux最全解压命令(*.tar *tar.gz *.gz *.tar.bz2 *.bz2 *tar.xz *.xz *tar.Z *.Z *.rar *.zip *.7z *.7za)

    压缩解压命令 (这里重点介绍tar命令,它是一个打包程序,它可 以调用其它的命令,如:gzip bzip2.除此之外还有 rar zip命令) 注:无特殊说明**/代表文件夹,*/代表次一级文件夹 * ...

  4. Java批量高效压缩支持加解密支持所有压缩格式(Zip/7z/rar)

    前言:有时候需要对很多文件进行压缩,几个还好如果有100个呢对吧,为什么不借助咱们强大的java呢,所以我就写了一个可以批量压缩,支持所有压缩格式的工具类当然也支持加密和解密,下面就是工具类的代码 废 ...

  5. 详细介绍zip、rar、7z的不同以及优势

    在现在最常见的压缩文件有zip.rar.7z三种,它们都有各自的优点和缺点.我们用一句话来概括一下:7z压缩率最高,RAR安全性高,ZIP使用范围广. 文件压缩打包是最为常见的一种分享方式了,而众多的 ...

  6. 7z rar zip之间的区别

    7z一般对应的软件是7zip zip对应的是winzip rar对应的 winrar 只不过现在这几个软件基本互相支持. 7z压缩比率大些.zip次之.zip格式比较常见支技泛围广.windows操作 ...

  7. RAR Extractor - WinRAR ZIP 7Z Mac文件解压软件

    RAR Extractor - The Unarchiver Mac是一款支持Rar,Zip,Tar,7-zip,exe,jar等多种格式压缩文件进行解压的文件解压软件,您可以使用RAR Extrac ...

  8. PHP 解压带密码的压缩包(ZIP|7Z|RAR等)

    因为平常经常要解压很多带密码的压缩包,索性想写个程序自动去密码本拿来解压 用了下go  结果go不支持解压带密码的 所以拿起老本行php来做,但原生拓展只有zip( ZipArchive)或者RAR没 ...

  9. java解析压缩文件,支持zip,rar,7z压缩格式

    最近项目有需求对压缩文件进行解析,需要支持市面上比较流行的压缩格式,诸如zip,rar,7z: 由于压缩文件解析比较常见,特将代码整理出来,供后续参考学习: 以下是java代码: maven依赖: & ...

最新文章

  1. CentOS的el5, el6, el7代表什么
  2. python【数据结构与算法】各进制转换-使用内置函数
  3. zend studio让编译器导入项目为utf-8如何设置
  4. 8.Java格式化输出
  5. anuglar.js ui-router传递参数
  6. ASP中如何在退出一个页面时自动清空session变量
  7. 使用普通asp.net编程方式开发WAP应用的可行性
  8. 42Exchange 2010升级到Exchange 2013-证书申请配置
  9. GMSK的调制与解调
  10. ydui滚动加载:TypeError: Cannot read property '$emit' of undefined
  11. Nacos安装讲解教程
  12. C++ 学生信息管理系统课程设计报告
  13. python训练自己中文语料库_中文语料库构建过程详细教程
  14. 分类器交叉验证java_使用交叉验证和F1分数选择SVM参数
  15. 性能分析之系统资源饱和度
  16. TCP/IP模型背后的内涵(一)
  17. 10个有趣且易上手的AI项目(附Python源代码)
  18. 计算机网络:P3.1-数据链路层(上)
  19. 【2022最新版】ENSP安装教程
  20. 我国数字出版产业发展规模[中国新闻出版网]

热门文章

  1. pyttsx3 快速上手之:语音合成播报
  2. Trun On ACID(Detlete Update) On Hive
  3. kali 解压rar
  4. python educoder苹果梨子_pythoneducoder苹果梨子煮水的功效_苹果梨子汤的功效
  5. 企业微信应用消息html标签,消息类型及数据格式
  6. 为什么要配置hosts来本地测试?
  7. js控制的Flv视频播放器源码下载
  8. HEALTH_WARN 1 filesystem is degraded,一直在rejoin状态
  9. Mixpanel使用注意点
  10. Windows下通过Git上传项目至Github