当使用某种无损压缩算法压缩文件时,如何能够预测执行时间和/或产生的压缩率?我特别关心本地压缩,因为如果您知道本地压缩的时间和压缩比,您可以根据当前可用的网络吞吐量轻松计算网络压缩的时间。
假设您有一些关于文件的信息,例如大小、冗余、类型(我们可以说文本以保持简单)。也许我们有一些来自实际先前测量的统计数据。还需要什么来预测执行时间和/或压缩比(即使是一个非常粗略的预测)。
对于本地压缩,文件的大小会产生影响,因为实际从存储介质(sdcard、硬盘驱动器)读取和写入数据将占总执行的更多部分。
实际压缩部分可能取决于冗余/类型,因为大多数压缩算法通过压缩小数据块(100kb 左右)来工作。例如,较大的 HTML/Javascripts 文件压缩得更好,因为它们具有更高的冗余度。
我想还有一个调度问题,但粗略估计可能会被忽略。
这是我有时想安静下来的一个问题。我想知道是否一些低开销代码(比如在服务器上)可以预测在执行实际压缩之前压缩文件需要多长时间?