- handle the dl_time <= 0 case - relative validity of calculated speed now depends on dl_time instead of dl_size. (that's where the random error is) --- urlgrabber/grabber.py | 7 ++++--- 1 files changed, 4 insertions(+), 3 deletions(-)
diff --git a/urlgrabber/grabber.py b/urlgrabber/grabber.py index be85f92..73e14aa 100644 --- a/urlgrabber/grabber.py +++ b/urlgrabber/grabber.py @@ -2301,11 +2301,12 @@ class _TH: if ug_err is None: # k1: the older, the less useful - # k2: if it was <1MiB, don't trust it much + # k2: <500ms readings are less reliable # speeds vary, use 10:1 smoothing k1 = 2**((ts - now) / default_grabber.opts.half_life) - k2 = min(dl_size / 1e6, 1.0) / 10 - speed = (k1 * speed + k2 * dl_size / dl_time) / (k1 + k2) + k2 = min(dl_time / .500, 1.0) / 10 + if k2 > 0: + speed = (k1 * speed + k2 * dl_size / dl_time) / (k1 + k2) fail = 0 elif getattr(ug_err, 'code', None) == 404: fail = 0 # alive, at least -- 1.7.4.4 _______________________________________________ Yum-devel mailing list Yum-devel@lists.baseurl.org http://lists.baseurl.org/mailman/listinfo/yum-devel