在我研究计算上传速度之后。我发现它们取决于两件事:
我的应用程序很可能会处理大量上传的文件甚至文件夹。当我使用Socket.io来处理这些可恢复的上传时,我想,会有第三个因素 - 我的服务器CPU利用率。
编辑:指标应该全部发生在客户端。服务器不需要知道cliens上传速度。
为了测量上传速度,我进行了两次尝试:
每次向服务器发送x
字节的函数调用都会得到时间t
并保存x
和t
供以后使用。
在第二次运行时,使用以下内容进一步计算上传速度v
:
v = dx / dt = (x2 - x1) / (t2 - t1)
每个i
函数调用(将x
个字节发送到服务器)保存xi
以供日后使用。
在第一次调用时,保存时间t0
并设置异步间隔函数以递增索引j
,并按照tj
秒计算上传速度,如下所示:
v = sum(xi) / dt = sum(xi) / sum(tj - t0)
理论上两种尝试都应该给出相同的输出。
但是哪一个更适合软件设计和/或性能?
注意: 对我来说,设置严格的间隔是有意义的,就像在尝试2中一样。特别是对于图形显示计算的信息,取决于上载运行时的时间。 (例如在蒸汽库中)