Оценка/прогнозирование времени завершения загрузки

Я не думаю, что это находится в INFORMATION_SCHEMA - Вы должны будете, вероятно, использовать sysobjects или связали удержанные от использования таблицы/представления.

Вы думали бы, что будет тип для этого в INFORMATION_SCHEMA.TABLE_CONSTRAINTS, но я не вижу тот.

15
задан Phil H 14 December 2009 в 14:38
поделиться

5 ответов

More generally, I think you are looking for a way to give an instant mesure of the transfer speed, which is generally obtained by an average over a small period.

The problem is generally that in order to be reactive, the period is usually extremely small, which leads to the yoyo effect.

I would propose a very simple scheme, let's model it.

Think of a curve speed (y) over time (x).

  1. the Instant Speed, is no more than reading y for the current x (x0).

  2. the Average Speed, is no more than Integral(f(x), x in [x0-T,x0]) / T

  3. the scheme I propose is to apply a filter, to give more weight to the last moments, while still taking into account the past moments.

It can be easily implement as g(x,x0,T) = 2 * (x - x0) + 2T which is a simple triangle of surface T.

And now you can compute Integral(f(x)*g(x,x0,T), x in [x0-T,x0]) / T, which should work because both functions are always positive.

Of course you could have a different g as long as it's always positive in the given interval and that its integral on the interval is T (so that its own average is exactly 1).

The advantage of this method is that because you give more weight to immediate events, you can remain pretty reactive even if you consider larger time intervals (so that the average is more precise, and less susceptible to hiccups).

Also, what I have rarely seen but think would provide more precise estimates would be to correlate the time used for computing the average to the estimated remaining time:

  • if I download a 5ko file, it's going to be loaded in an instant, no need to estimate
  • if I download a 15 Mo file, it's going to take between 2 minutes roughly, so I would like estimates say... every 5 seconds ?
  • if I download a 1.5 Go file, it's going to take... well around 200 minutes (with the same speed)... which is to say 3h20m... perhaps that an estimates every minute would be sufficient ?

So, the longer the download is going to take, the less reactive I need to be, and the more I can average out. In general, I would say that a window could cover 2% of the total time (perhaps except for the few first estimates, because people appreciate immediate feedback). Also, indicating progress by whole % at a time is sufficient. If the task is long, I was prepared to wait anyway.

12
ответ дан 1 December 2019 в 02:46
поделиться

Интересно, даст ли метод оценки состояния здесь хорошие результаты? Что-то вроде фильтра Калмана?

По сути, вы предсказываете будущее, глядя на вашу текущую модель, и меняете модель на каждом временном шаге, чтобы отразить изменения в реальном мире. Я думаю, что этот метод используется для оценки времени, оставшегося на аккумуляторе вашего ноутбука, которое также может варьироваться в зависимости от использования, возраста аккумулятора и т. Д. »

см. http://en.wikipedia.org/ wiki / Kalman_filter для более подробного описания алгоритма.

Фильтр также дает меру дисперсии, которую можно использовать для обозначения вашей уверенности в оценке (хотя, как упоминалось в других ответах,

8
ответ дан 1 December 2019 в 02:46
поделиться

Не путайте пользователей , предоставив больше информации, чем им нужно. Я думаю о доверительном интервале. Пропустите.

Время загрузки из Интернета сильно различается. Микроволновая печь мешает работе Wi-Fi. Использование зависит от времени суток, дня недели, праздников и выпуска новых увлекательных игр. Возможно, сейчас сервер сильно загружен. Если вы несете ноутбук в кафе, результат будет другим, чем дома. Так что ты, наверное, сможешь '

4
ответ дан 1 December 2019 в 02:46
поделиться

Улучшение самого оценочного времени: интуитивно я бы предположил, что скорость сетевого соединения представляет собой серию случайных значений около некоторого временная средняя скорость - все идет с одной скоростью, затем внезапно замедляется или ускоряется.

Таким образом, одним из вариантов может быть взвешивание предыдущего набора скоростей по некоторой экспоненте, чтобы самые последние значения получили самый сильный вес. Таким образом, по мере того, как предыдущая средняя скорость уходит в прошлое, ее влияние на текущее среднее уменьшается.

Однако, если скорость колеблется случайным образом, возможно, стоит сгладить верхнюю часть экспоненты (например, с помощью фильтра Гаусса ), чтобы избежать слишком сильных колебаний.

Итак, в итоге я ' m думая об измерении стандартного отклонения (возможно, ограниченном последними N минутами) и используя его для создания гауссовского фильтра, который применяется к входным данным, а затем ограничивая указанную точность с помощью стандартного отклонения.

вы ограничиваете расчет стандартного отклонения последними N минутами? Как узнать, как долго использовать?

Кроме того, существуют возможности распознавания образов, чтобы определить, достигли ли мы стабильной скорости.

2
ответ дан 1 December 2019 в 02:46
поделиться

Я сам много раз думал об этом. Ответ начинается с консервативности при вычислении текущей (и, следовательно, будущей) скорости передачи данных и включает усреднение за более длительные периоды, чтобы получить более стабильные оценки. Возможно, фильтрация нижних частот отображаемого времени, чтобы не происходило скачков между 2 минутами и 2 днями.

Я не думаю, что доверительный интервал будет полезен. Большинство людей не смогли бы его интерпретировать, и он просто отобразил бы больше предположений.

0
ответ дан 1 December 2019 в 02:46
поделиться
Другие вопросы по тегам:

Похожие вопросы: