完了率の履歴に基づいて、ダウンロード (またはその他のプロセス) がいつ終了するかを予測するためのウィジェットはありますか?
簡単なバージョンでは、開始時間、現在の時間、完了率に基づいて 2 ポイント フィットを行うだけですが、より良いオプションが可能です。
GUI ウィジェットは便利ですが、値を返すだけのクラスでも問題ありません。
完了率の履歴に基づいて、ダウンロード (またはその他のプロセス) がいつ終了するかを予測するためのウィジェットはありますか?
簡単なバージョンでは、開始時間、現在の時間、完了率に基づいて 2 ポイント フィットを行うだけですが、より良いオプションが可能です。
GUI ウィジェットは便利ですが、値を返すだけのクラスでも問題ありません。
私が試みる理論上のアルゴリズムについては、そのようなウィジェットを作成するとしたら、次のようになります。
それはそれをするべきです...
(欠落しているステップ: 残りのキビバイト数を平均 KiB/秒で割った値)
ほとんどのプログレス バー ウィジェットには、完了したパーセンテージを取る update() メソッドがあります。
次に、開始からの時間と最新のパーセンテージに基づいて残り時間を計算します。セットアップ時間が長いプロセスがある場合は、0% の更新が送信されたときに予測クロックをリセットするなどして、この時間が含まれないように機能を追加することをお勧めします。
他のいくつかの提案と同じような効果がありますが、時間の関数として完了率のデータを収集することにより、統計的方法を使用して R^2 最適線を生成し、それを 100% 完了に予測することができます。現在の操作を考慮に入れるには、新しいデータに大きな重みを付けて (または古いデータを間引いて)、短期的な変動を無視するようにするには、最初のデータ ポイントに大きな重みを付けることができます。