在 libcurl 中计算下载速度

Calculating download speed in libcurl?

本文关键字:下载速度 计算 libcurl      更新时间:2023-10-16

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

我最初想到使用这个:

downloadSpeed = amountCurrentlyDownloaded / secondsSinceDownloadStarted

类似于

speed = distance / time

公式。但是,这并不准确。例如,如果下载根本没有更改,则downloadSpeed将略微下降,但不会降至零。

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

想想一辆车。 您想知道旅行的平均速度,还是想知道您当前的速度? 您的公式提供平均速度。

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

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