【问题标题】:How to get the throughput in C#如何在 C# 中获得吞吐量
【发布时间】:2011-09-18 23:34:39
【问题描述】:

您好,我想通过 C# 使用 HttpWebRequest 计算吞吐量。
我想在运行System.Diagnostics.Stopwatch 时请求一个大文件(500KB)。
然后我可以计算 KB/s 速率。在这一点上我有 2 个问题:
1. 这将有多准确?我可以依赖它还是应该使用另一种方法?
2。如何在可以硬编码的 URL 上托管文件而不用担心服务器端问题?我能否以某种方式使用已经存在于谷歌或微软页面上的具有如此大小的文件?

提前致谢,
亚历克斯

【问题讨论】:

  • 如果您正在下载由其他人托管的文件,请确保您这样做没有违反他们的服务条款 (TOS)。
  • 我希望人们使用不太容易混淆的术语吞吐量而不是带宽。
  • @Greg 谢谢你,我会忘记的:D
  • @ChaosPandion 到底有什么区别?每个人都知道我在说什么。
  • @alex - 对于那些有电子背景的人来说,这个定义是字面上的。带宽是给定频段支持的频率范围。吞吐量是系统在一段时间内可以处理的数量。

标签: c# .net winforms ip bandwidth


【解决方案1】:

这真的不是你应该依赖的东西:

  • 您的用户的带宽会根据一天中的时间、他们的 ISP 的繁忙程度、他们使用该连接打开的其他程序而波动...
  • 此外,如果您基于服务器上托管的文件执行此操作,您获得的结果将取决于该服务器的繁忙程度。
  • 如果您的某个用户限制了他们可以下载的数据量,他们可能不会感谢您让他们下载他们不需要的额外文件。

您最好让您的用户从列表中选择他们的连接类型(例如“调制解调器 - 56kbps”、“DSL -

【讨论】:

  • 我正在从事的项目实际上是基于互联网的。如果没有 DSL,任何人都无法考虑使用它。
  • 好吧,问问他们是否有 512kbps、1Mbps、2Mbps...很多程序(Steam、iTunes...)这样做是为了计算出他们可以获得多少带宽。
  • 我不认为我应该打扰用户。我的程序应该“独立”运行,我不认为 500KB 会伤害任何人。即使使用 DSL Lite。
  • 问题是 500KB 太小,无法获得准确的测量结果。
  • 如果他们的电脑在第三次尝试中途开始下载更新,所以他们的连接突然变慢了怎么办?或者,如果您在凌晨 3 点计算吞吐量,然后在上午 11 点网络繁忙时使用相同的值?如果他们使用移动加密狗并按兆字节支付互联网连接费用怎么办?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-08-05
  • 2019-05-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多