¿Por qué las estimaciones de “tiempo restante” en descargas e instalaciones son tan inexactas?

Las estimaciones de tiempo en las descargas pueden ser bastante precisas. Dado un servidor con un ancho de banda disponible y un cliente con ancho de banda disponible, se puede lograr una velocidad de descarga constante. Una tasa constante significa previsiblemente en términos de tiempo.

En cuanto a las instalaciones, ahí es donde reside el problema. ¿Qué significa el 50%? 50% de los archivos? Del tamaño? ¿De las diferentes etapas de la instalación? Es difícil cronometrarlo, ya que 100000 archivos de 1 KB tardan mucho más tiempo en instalarse que 1 archivo de 100000 bytes. Las etapas también son inesperadas, ya que hay etapas cuyo tiempo es desconocido para los desarrolladores, ya que dependen de la configuración de la máquina del instalador.

En resumen, es una tarea bastante complicada, que realmente no afecta el producto, por lo que nadie está dispuesto a dedicarle tiempo.

William lo ha respondido muy bien.
El tiempo restante estimado no es inexacto, el software está haciendo su trabajo bastante bien y le da una predicción aproximada.
El problema es con su velocidad de Internet que sigue cambiando y, por lo tanto, el software le brinda diferentes resultados en diferentes momentos.
Esto no sucede con el arrendamiento de conexión a Internet donde la velocidad de Internet es constante.

Jitter : el ancho de banda no es constante en cada segundo, por lo que hay una variación.
TCP Slow Start : no obtiene la velocidad deseada al inicio de la conexión de inmediato. Aumenta gradualmente.

El tiempo estimado de una descarga es el cálculo simple de:

tiempo de descarga = (tamaño del archivo) / (velocidad de conexión a internet).

Si la velocidad de conexión a Internet se mantuviera constante, la estimación sería mejor. Hay un par de razones por las cuales la mayoría de los navegadores simplemente siguen este enfoque:
1) Utiliza información local del sistema y modela el problema en cuestión (es lo que es). No somos los administradores del ISP.
2) Sondear la tarifa “más de lo que necesitamos” puede ser costoso, especialmente si su conexión no es confiable.
2) Es un cálculo muy eficiente. Solo una división.

¡Espero que esto ayude!

Daniel

Creo que las estimaciones en sí mismas no son tan precisas, es el ancho de banda muy variable de su conexión a Internet. Los algoritmos actuales calculan la estimación en el tiempo ‘t’, en función de la velocidad máxima de datos disponible en el tiempo ‘t’. Una sugerencia para mejorar sería calcular un promedio de velocidad de datos hasta el tiempo ‘t’, y calcular la estimación basada en eso.

Puedes echar un vistazo al algoritmo que usa Firefox aquí: mozilla-central mozilla / toolkit / mozapps / downloads / DownloadUtils.jsm

Podrías escribirlo asumiendo la velocidad como una constante. Pero la velocidad de descarga varía. Por lo tanto, el tiempo restante depende de la velocidad de descarga actual, por lo que es una aproximación aproximada. Sin embargo, solo estoy haciendo suposiciones. Los algoritmos pueden ser más complicados dependiendo del navegador.

Un algoritmo probablemente bueno es uno que no verifica la velocidad de descarga en los primeros 5 segundos (inicio lento de TCP de Willam), luego comienza a verificarlo. En lugar de verificar la velocidad de descarga, verifique la velocidad de descarga promedio, luego la dividiría por el tamaño del archivo. Solo una recomendación 🙂