2009-01-14 9 views
4

Existe-t-il des widgets permettant de prédire quand un téléchargement (ou un autre processus) se terminera en fonction du pourcentage d'historique?Temps de téléchargement remettant le prédicteur

La version triviale ferait juste un ajustement de 2 points basé sur l'heure de début, l'heure actuelle et le pourcentage fait mais une meilleure option est possible.

Une interface graphique plus large serait bien, mais une classe qui retourne juste la valeur serait très bien.

+1

Un widget pour quel environnement? Ou parlez-vous d'un algorithme théorique pour calculer et rendre un tel widget? –

+0

Bonne question, aussi une bonne question de clarification de wolfie. Je serais particulièrement intéressé par les algorithmes, mais les implémentations pour les environnements que j'utilise (par exemple JavaScript) seraient bien aussi. – orip

Répondre

2

Pour l'algorithme théorique que je tenterais, si je voulais écrire un tel widget serait quelque chose comme:

  1. Enregistrer la quantité de données transférées dans une période d'une seconde (un KiB/s littérale)
  2. Rappelez-vous les 5 ou 10 de ces périodes (pour obtenir une moyenne Kio/s) récente
  3. soustraire la taille totale de la taille transférée (pour obtenir un « octets restants »)
  4. ???
  5. Widget!

Ce oughta faire ...

(l'être étape manquante: kibibytes restant divisé par la moyenne Kio/s)

+0

C'est quelque chose comme ce à quoi j'ai pensé. À l'étape 4, j'utiliserais une sorte de moyenne mobile avec un biais plus lourd vers les extrémités (vitesse actuelle et moyenne longue durée). – BCS

0

La plupart des widgets de barre de progression ont une méthode update() qui prend un pourcentage.
Ils calculent ensuite le temps restant en fonction du temps écoulé depuis le début et du dernier pourcentage. Si vous avez un processus avec un temps d'installation long, vous pouvez ajouter plus de fonctionnalités pour ne pas inclure cette fois, peut-être en réinitialisant l'horloge de prédiction lors de l'envoi d'une mise à jour à 0%.

0

Il sorte d'avoir le même effet que certaines des autres propositions mais en recueillant des données en pourcentage faites en fonction du temps, des méthodes statistiques pourraient être utilisées pour générer une ligne d'ajustement R^2 et la projeter à 100%. Pour prendre en compte le fonctionnement actuel, un poids plus lourd pourrait être placé sur les données les plus récentes (ou les anciennes données pourraient être amincies) et pour faire en sorte qu'il ignore les fluctuations à court terme, une forte pondération peut être mise sur le premier point de données.

Questions connexes