Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 测量下载速度_C#_.net_Windows_Http_Webclient - Fatal编程技术网

C# 测量下载速度

C# 测量下载速度,c#,.net,windows,http,webclient,C#,.net,Windows,Http,Webclient,我的应用程序将使用proxys,其中一些,我如何找到每个代理提供的下载速度,我想先使用速度最高的代理,寻找易于实现的方法 请提供建议,粗略的想法也欢迎 提前谢谢。您还没有提供任何关于如何实现此功能的详细信息-您已将其标记为c#和.net-这是否意味着您将使用这些程序构建测试工具 简单的答案是测量下载一个已知大小的文件需要多长时间。但实际上,您需要从不同的位置下载大量文件,然后根据大小绘制所需的时间-然后在点上拟合一条线(使用最小r^2是最简单的方法)。它穿过时间访问的点将给出平均端到端延迟,斜率

我的应用程序将使用proxys,其中一些,我如何找到每个代理提供的下载速度,我想先使用速度最高的代理,寻找易于实现的方法

请提供建议,粗略的想法也欢迎


提前谢谢。

您还没有提供任何关于如何实现此功能的详细信息-您已将其标记为c#和.net-这是否意味着您将使用这些程序构建测试工具

简单的答案是测量下载一个已知大小的文件需要多长时间。但实际上,您需要从不同的位置下载大量文件,然后根据大小绘制所需的时间-然后在点上拟合一条线(使用最小r^2是最简单的方法)。它穿过时间访问的点将给出平均端到端延迟,斜率是平均带宽。注意:这与连接的带宽不同——jsut是有效吞吐量的度量


OTOH如果你想使用服务器上的真实网络流量来测量长时间内的有效带宽和延迟,可以看看Yahoo Boomerang。

你可以使用动态创建的几个后台工作程序从每个代理启动下载

使用基于

您可以使用
ReportProgress
句柄测量下载速度并停止延迟最高的后台工作程序


使用此技术,您可以选择仅从每个代理下载5-10%,然后丢弃最慢的

将每秒接收的总字节数不会告诉您的接收带宽或速度。当然,为了精确,必须每秒计算一次

但是,在任何时候,只有一个代理流可以让流量进入,对吗?哪个代理在更大的时间段获得更多的时间片,那么它就有更多的带宽

希望我的理解是正确的!!如果没有,请道歉