【问题标题】:Calculating download speed in libcurl?在 libcurl 中计算下载速度?
【发布时间】:2016-02-14 12:42:43
【问题描述】:

所以我一直在使用 libcurl 来处理 GET 等 HTTP 请求,并且我设法创建了进度函数回调来查看下载了多少。但是,我不知道计算下载速度的公式(类似于浏览器显示下载速度的方式,例如 Chrome)。

我本来想用这个的:

downloadSpeed = amountCurrentlyDownloaded / secondsSinceDownloadStarted

类似于

speed = distance / time

公式。然而,这并不准确。例如,如果下载完全没有变化,downloadSpeed 会略微下降,但不会下降到零。

那么计算下载速度的正确公式是什么?

【问题讨论】:

  • 没有“正确”的公式。它始终是对可变过程的描述,以及您认为应该如何用单个数字来描述该过程。您可能会发现更有吸引力的是使用重叠窗口:计算下载了多少块,例如一秒钟,然后平均最后几个块。

标签: c++ networking libcurl


【解决方案1】:

想想汽车。您想知道这次旅行的平均速度,还是想知道您当前的速度?你的公式给出了平均速度。

由于您是以增量方式接收数据,因此您不能像测速器一样查看当前速度。相反,也许你可以每隔几秒更新一次,当你这样做时,除以自 自上次更新以来的最后一次更新时间(需要使用比秒更高精度的计时器)。

也许您想同时显示当前速度和平均速度。这只是用户“感觉”最好的问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-05-16
    • 2010-09-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-02
    • 2012-05-17
    相关资源
    最近更新 更多