4

完了率の履歴に基づいて、ダウンロード (またはその他のプロセス) がいつ終了するかを予測するためのウィジェットはありますか?

簡単なバージョンでは、開始時間、現在の時間、完了率に基づいて 2 ポイント フィットを行うだけですが、より良いオプションが可能です。

GUI ウィジェットは便利ですが、値を返すだけのクラスでも問題ありません。

4

3 に答える 3

2

私が試みる理論上のアルゴリズムについては、そのようなウィジェットを作成するとしたら、次のようになります。

  1. 1 秒間に転送されたデータ量を記録します (文字通りのKiB /秒)
  2. そのような最後の 5 ~ 10 期間を記憶します (最近の平均 KiB/秒を取得するため)
  3. 転送されたサイズから合計サイズを引きます (「残りのバイト数」を取得するため)。
  4. ???
  5. ウィジェット!

それはそれをするべきです...

(欠落しているステップ: 残りのキビバイト数を平均 KiB/秒で割った値)

于 2009-01-14T17:42:14.683 に答える
0

ほとんどのプログレス バー ウィジェットには、完了したパーセンテージを取る update() メソッドがあります。
次に、開始からの時間と最新のパーセンテージに基づいて残り時間を計算します。セットアップ時間が長いプロセスがある場合は、0% の更新が送信されたときに予測クロックをリセットするなどして、この時間が含まれないように機能を追加することをお勧めします。

于 2009-01-14T17:32:26.387 に答える
0

他のいくつかの提案と同じような効果がありますが、時間の関数として完了率のデータを収集することにより、統計的方法を使用して R^2 最適線を生成し、それを 100% 完了に予測することができます。現在の操作を考慮に入れるには、新しいデータに大きな重みを付けて (または古いデータを間引いて)、短期的な変動を無視するようにするには、最初のデータ ポイントに大きな重みを付けることができます。

于 2009-01-16T20:32:53.257 に答える