拉链尺寸/创建时间估算

时间:2009-04-20 10:23:56

标签: python zip time-estimation

我需要使用Python zipfile模块或unix命令行实用程序按需创建ZIP存档。

要压缩的资源通常是> 1GB,不一定是压缩友好的。

如何有效地估算其创建时间/大小?

4 个答案:

答案 0 :(得分:15)

从大文件中提取一堆小部件。也许64块每块64k。随机选择。

连接数据,压缩数据,测量时间和压缩比。由于您随机选择了文件的某些部分,因此您可能压缩了有代表性的数据子集。

现在,您所要做的就是根据测试数据的时间估算整个文件的时间。

答案 1 :(得分:3)

我建议您测量生产一定尺寸拉链所需的平均时间。然后根据该度量计算估计值。但是,如果您不知道数据压缩程度如何,我认为估计会非常粗糙。如果您想要压缩的数据每次都可以做出更好的预测,那么就会有一个非常相似的“配置文件”。

答案 2 :(得分:1)

如果有可能从python模块获得进展回调,我建议找出pr秒处理多少字节(通过简单地存储在文件中的位置,在第二个开始处,以及你在最后的位置) 。如果您有关于计算机的速度的数据,当然可以保存它,并将其用作下一个zip文件的基础。 (我通常在显示时间预测之前收集大约5个样本)

使用此方法可以为您提供Microsoft minutes ,因此您可以获得更多样本,以便将其平均化。如果你制作一个包含大量文件的zip文件就会出现这种情况,因为在压缩许多小文件时,与1个大文件相比,ZIP往往会变慢。

答案 3 :(得分:0)

如果您使用ZipFile.write()方法将文件写入存档,则可以执行以下操作:

  1. 获取要压缩的文件列表及其相对大小
  2. 将一个文件写入存档并计算花费的时间
  3. 根据写入的文件数量,大小以及剩余的数量来计算ETA。
  4. 如果您只是压缩一个非常大的文件,这将无效。我自己从来没有使用过zip模块,所以我不确定它是否可行,但是对于少量的大文件,也许你可以使用ZipFile.writestr()函数并以块的形式读入/压缩文件?