有许多通用压缩程序。7z、zip、tar 等(https://en.wikipedia.org/wiki/Comparison_of_file_archivers)
根据数据类型,可能会有更好的表现(即速度/尺寸比)
我想知道是否有一种快速的方法(可能是启发式方法)来判断给定的数据/文件的一个表现比另一个更好?
答案1
许多不同的程序使用相同的算法,因此对于相同格式的不同程序,压缩级别会相似,但性能在某种程度上取决于它们的编码方式。
ZIP 格式使用 Lempel-Ziv 算法,该算法适用于一般文本数据,但不一定适用于其他格式,因此已经为其他格式开发了专门的算法。
针对不同数据类型的其他算法使用数据的已知特征来帮助查找可压缩元素,尽管这些元素通常内置于存储文件本身:PNG 和 FLAC 是众所周知的无损多媒体格式。此类文件很少能进一步压缩,因此通常尝试这样做增加文件大小。
至于速度,大多数用户更喜欢最快的解压缩速度,而以较慢的压缩速度为代价,但也有一些算法可以提供不同的平衡,尽管压缩级别通常较差。
如果不进行测试,您将必须查阅文献:这里是一个很好的起点,尽管很多文章都涉及有损格式。
唯一的启发式方法是检查算法本身并自行判断其性能。
附言一下,TAR 是一个档案格式,而不是压缩格式,尽管管理程序将处理 TGZ,即压缩的 TAR 格式。