神奇的压缩算法

今天周五嘛,等下班,闲得无聊ヾ(。 ̄□ ̄)ツ゜゜゜
于是乎打算把上个月的报表数据打包一下,心血来潮,顺便实际测试了一下各种算法的差距
发现7z的LZMA2大字典竟然如此拉跨


64m字典跟1536m压出来一样的大小,甚至384m还小了一个字节

参数设置写在文件名了,压缩算法-字典大小-单词大小-固实大小
文件内容都是excel或者csv文件

然后也顺手也测试了一下其他格式


嘶…小是够小,但是这个字典总感觉不对劲
体感上最快的是zipPPMd,最慢的是7zBZip2,等到下班都没压完。。。

图片
源文件是这个大小,有研究压缩的dalao能介绍一下还有啥高压缩率的办法吗
不用考虑压缩时间,因为闲【
但是不能固实,因为有时候会抽查单个文件,每天的数据量大概是18m左右吧ԅ(¯﹃¯ԅ)

如果套娃压缩会有用吗,还没试,下班了。。。

知乎有人评测认为rar的效率要好很多

3 Likes

tl, dr

zipx对docx、xlsx、zip、png文件采用XZ压缩算法

csv 本质上是文本

zipx对txt文件、bmp文件、html文件采用PPMd压缩算法

其实 zstd 多用于 fs

zstd的特点是:他的压缩等级的设置非常合理,「快速压缩」「标准压缩」「最大压缩」分別对应了zip、rar、7z三种格式。我在网上下载了九千多万字的网文做实验,结果如下:⒈好压+双线程标准压缩成zip格式,耗时6秒,最终文件大小74484KB。Zstandard+快速压缩,耗时6s,最终文件大小63287KB。⒉WinRAR标准压缩成rar格式,耗时28s,53557KBZstandard+标准压缩,耗时30s,57420KB⒊7-Zip+LZMA2算法+标准压缩+16M字典+非固实,耗时1m30s,47599KBZstandard+最大压缩,耗时1m30s,49224KBzstd在「快速压缩」这个档位可以达到zip的压缩速度,同时得到比zip更小的压缩文件。在「标准压缩」和「最大压缩」这两个档位可以达到rar和7z的压缩速度,同时得到的压缩文件只比rar和7z大一点。由此看来zstd相对于rar和7z就沒有优势了?非也。我们知道zip的解压缩速度比rar和7z快,但是zstd的解压缩速度比zip更快。我实测zstd的解压缩速度比zip快一倍以上,比rar和7z快很多很多倍。说说这个网址的其他算法。lz4、lz5:速度非常快,比zip/deflate更快,但是压缩率惨不忍睹。Brotli:跟zstd差不多,但是不支持自解压格式,所以不考虑使用。Fast LZMA2:有人用zstd的代码把LZMA2算法重写了一遍,指导思想是以降低压缩比的代价提高压缩速度。我试用了一下感觉跟rar差不多,在达到跟rar相似压缩速度的参数配置下可以得到跟rar一般大小的压缩文件(原版LZMA2算法比rar慢得多),几乎就相当于一个免费版的rar。

(我的硬盘上默认开启了 zstd)

2 Likes

想起电脑(win)用的是7zip,丑是丑但是不用装盗版也不用看广告
就一直凑合用
不过看了一下好像不适合存储重要文件的话那果然还是需要认真考虑一下了

7z默认不自带冗余记录功能,好像有的插件可以,但是流行程度很低
当然这玩意和“压缩”是相违背的,我之前下gal的网站直接10%恢复记录,这个只能叫打包了(当然现在大部分情况压缩率的意义也不大,除了纯文本
分卷,加密,恢复记录,固实,商业方案还是有特定市场的,虽然想玩tar当然也行
你要组raid吗我可以打钱吗(

2 Likes

姐,咱怕了,别提打钱这事儿了成不(
我倒没那么大的数据备份的需求
只是上次我虚拟磁盘炸了的事让我很惨痛就是了
别的倒没啥

*更新一下,现在虚拟机直接读写物理分区,一切解决

窝感觉字典流的老是cache miss所以慢太多,而树流的就没这个问题吧(大概