![]() |
1
13
我们用下面的方法解决了类似的问题。我们对下载速度有多快不感兴趣 整个的 时间,大概是根据最近的活动预计需要多长时间,但是,正如你所说,不是最近的,数据会到处跳跃。 我们对整个时间段不感兴趣的原因是下载速度可以达到1米/秒,持续半小时,然后在接下来的十分钟内切换到10米/秒。前半个小时会严重拖慢平均速度,尽管你现在正以相当快的速度前进。 我们创建了一个循环缓冲区,每个单元格保存在1秒内下载的量。循环缓冲区大小为300,允许5分钟的历史数据,并且每个单元都初始化为零。 我们还维护了总计(缓冲区中所有条目的总和,所以最初也是零)和计数(显然是零)。 每隔一秒钟,我们就会计算出自上一秒以来下载了多少数据,然后:
基本上,在伪代码中:
您可以更改您的分辨率(1秒)和历史记录(300),以适应您的情况,但我们发现,5分钟的时间已经足够长,可以消除不规则现象,但仍会逐渐调整为及时进行更永久的更改。 |
![]() |
2
10
平滑S exponential moving avg . 或类似的)。 |
![]() |
3
4
我更喜欢使用过去10秒的平均速度,并用它除以剩余的部分。划分到当前速度太不稳定,而划分到整个进度的平均值无法处理永久的速度更改(就像另一个下载正在启动一样)。 |
![]() |
4
0
为什么不把下载速度作为整个下载的平均值来计算呢,也就是说:
这样,随着时间的推移,一切都会变得平稳。 |
![]() |
Muhammad Umer · 为什么这个随机数猜谜游戏模拟产生5.8 6 月前 |
![]() |
Alisa Petrova · 在有向图中更改一对顶点以创建循环 8 月前 |
|
D W · Python-将浮点数从2转换为10到100位小数 8 月前 |
![]() |
Bartol · 确定python龟图形中的角度 1 年前 |
|
randomAlgo · 将弹簧设置为相同长度的成本最低 1 年前 |
![]() |
Fyodor · 在C中使用sin和cos计算数学表达式不正确? 1 年前 |
![]() |
Sergio · python中大量数字的乘法 1 年前 |