本文为压缩相关内容的部分内容,如有更新:https://alvincr.com/2021/01/compress-entropy/
二:压缩选项
1 压缩方式
从存储—>最好,压缩速度依次减慢,但是压缩效果依次增强。
个人测试:为了真实感受一下压缩方式对压缩大小的影响,alvincr折腾了一下电脑,测试文件包含多种格式的文件以防止偏差,不过由于样本还是比较少,只能作为参考使用,我以前在压缩一个4GB的文件中发现:使用zip压缩最后为4GB,但是使用rar5-1024MB-固实压缩,直接将文件压缩成300MB的大小,下图是记录的关于各种压缩方式的对比。
可以看出源文件142MB,使用存储压缩方式基本上没有压缩任何内容,甚至还使占用空间变大了???使用rar5压缩的程度比rar高出2%左右,使用固实压缩效果相当好,相比于正常压缩,压缩程度提升10%。除此之外,使用zip-32KB-标准压缩后的大小与rar-4MB-标准差不多。
此外个人还测试了4M的小文件,发现rar5压缩出来的大小比rar更大,可能是字典导致的这个结果,个人认为对于这种小文件,使用rar5压缩并没有什么意义(这种小文件压缩应该会有专门的压缩工具例如gzip、tar,这些在网页传输中十分有用)。
2 固实压缩
固实压缩文件是一种特殊压缩方式存储的压缩文件,它把压缩文件中的全部文件都当成一个连续数据流来看待。固实压缩文件只支持 RAR、7Z 格式的压缩文件,ZIP 压缩文件永远是非固实的。RAR与7z的的压缩文件可由用户决定选择固实或非固实的压缩方式。
固实压缩可增加压缩性能,特别是在添加大量的小文件的时候。要从固实的压缩文件解压单个文件时,它之前的文件都需先经过分析。这造成当从固实的压缩文件内取出文件时会比一般压缩文件取出文件慢一些。但是,当从固实的压缩文件解压全部的文件时,解压速度并没有影响。 如果在固实压缩文件中的任何文件损坏了,要从损坏的范围中解压全部的文件是不可能的。–Baike
AlvinCR总结:固实压缩将所有文件看成一个整体,不对个体进行压缩,因此对于小文件的压缩效果会非常的好。可以这么想:压缩相当于给文件分配帐篷,文件越多需要分配的帐篷越多,这样就会给分配人员造成负担,但是如果将所有文件都分配在一个帐篷中,就只需要把帐篷做的大一点,就省下很多工序了。
因此在解压的时候需要将整体拆成个体,这就需要一定的时间。