下载剩余预测时间

时间:2009-01-14 17:14:14

标签: algorithm progress-bar

是否有任何小部件可以根据完成历史记录百分比预测下载(或任何其他进程)何时完成?

琐碎的版本只会根据开始时间,当前时间和完成百分比进行2点拟合,但可以选择更好的选项。

GUI小部件会很好但是只返回值的类就可以了。

3 个答案:

答案 0 :(得分:2)

对于我想尝试的理论算法,如果我要编写这样的小部件,将会是这样的:

  1. 记录一秒钟内传输的数据量(文字KiB / s)
  2. 记住最近5或10个这样的时期(以获得最近的平均KiB / s)
  3. 从传输的大小中减去总大小(以获得“剩余字节数”)
  4. ???
  5. 的widget!
  6. 那应该做到......

    (缺少的步骤是:kibibytes剩余除以平均KiB / s)

答案 1 :(得分:0)

大多数进度条小部件都有一个update()方法,需要完成百分比 然后,他们根据自开始以来的时间和最新百分比计算剩余时间。如果您的进程设置时间较长,则可能需要添加更多功能以使其不包含此时间,可能是在发送0%更新时重置预测时钟。

答案 2 :(得分:0)

它会产生与其他一些提案相同的效果,但通过收集完成百分比数据作为时间的函数,统计方法可用于生成R ^ 2最佳拟合线并将其投影到100%完成。为了使其考虑到当前操作,可以对较新的数据施加较重的权重(或者可以减少较旧的数据)并使其忽略短期波动,可以对第一个数据点施加较大的权重。 / p>