估算压缩包大小/创建时间

7 投票
4 回答
4291 浏览
提问于 2025-04-15 11:10

我需要根据需要创建ZIP压缩文件,可以使用Python的zipfile模块或者Unix命令行工具。

要压缩的资源通常超过1GB,而且不一定适合压缩。

我该如何有效地估算创建这些压缩文件所需的时间和大小呢?

4 个回答

1

如果你想从Python模块获取进度反馈,我建议你可以计算每秒处理了多少字节。方法很简单,就是记录下你在每秒开始时文件的位置,然后在每秒结束时再记录一次。这样你就能知道你的电脑处理数据的速度了。当然,你可以把这些数据保存下来,作为下一个压缩文件的参考。(我通常会收集大约5个样本,然后再给出时间预测)

使用这种方法可能会得到一些所谓的“微软分钟”,所以随着样本的增加,你需要对这些数据进行平均。这种情况尤其在你要压缩很多小文件的时候更明显,因为压缩多个小文件通常比压缩一个大文件要慢。

3

我建议你先测量一下制作一个特定大小的压缩文件(zip)大约需要多长时间。然后根据这个时间来估算。不过,我觉得如果你不知道数据的压缩效果如何,这个估算会很粗略。如果你要压缩的数据每次都有很相似的特点,那你可能能做出更准确的预测。

16

从一个大文件中提取一些小部分。比如说,提取64个每个64k的小块,随机选择。

把这些数据拼接在一起,然后进行压缩,测量一下所花的时间和压缩比。因为你是随机选择文件中的部分,所以很有可能这些部分能代表整个数据的情况。

现在,你只需要根据测试数据的时间来估算处理整个文件所需的时间。

撰写回答