2009-01-14 32 views
4

是否有任何小部件可用于根据百分比完成历史记录预测下载(或任何其他进程)何时完成?下载时间重新编译预测器

平凡的版本会根据开始时间,当前时间和完成百分比做出2点拟合,但更好的选项是可能的。

GUI widgest会很好,但只返回值的类会很好。

+1

什么环境的部件?或者你是在谈论一个理论算法来计算和渲染这样一个小部件? – 2009-01-14 17:16:13

+0

好问题,也是wolfie的一个很好的澄清问题。我对算法特别感兴趣,但是我正在使用的环境(例如JavaScript)的实现也不错。 – orip 2009-01-14 17:19:46

回答

2

对于理论算法,我会尝试,如果我会写这样的小工具,将是这样的:

  1. 记录一个第二周期内传输的数据量(字面KiB/s)的
  2. 记住过去的5个或10个这样的周期(获得一个的最近的平均KIB /秒)
  3. 减去所传送的大小的总大小(以得到一个“字节剩余”)
  4. ???
  5. 小工具!

那现在应该做...

(缺少的步骤中:kibibytes其余由昆明植物研究所平均/ s的划分)

0

大多数进度条小部件都有一个update()方法,它完成了一个百分比。
然后,他们根据自开始以来的时间和最新的百分比来计算剩余时间。如果你有一个设置时间很长的进程,你可能需要增加更多的功能,这样它不会包括这个时间,也许可以通过在发送0%更新时重置预测时钟。

0

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