【发布时间】:2017-02-14 17:11:10
【问题描述】:
我正在开发一些 WCF Web 服务调用,并想测试使用调制解调器连接时下载时间的比较。
我启动了 Fiddler 并检查了规则 -> 性能 -> 模拟调制解调器速度选项。我可以看到这很有效,就像我刷新网页一样,它更慢。我尝试下载一些大约 3-6Mb 的文件,我再次看到了差异。通常这些会很快,在性能选项打开的情况下,它们需要几秒钟。
然后我尝试拨打服务电话。如果没有 Fiddler 选项,它们通常需要大约 300-400 毫秒来下载大约 1.5Mb。但是,启用性能选项后,调用大约需要 40-60 秒。这是放慢现实的方式。
这一切都在我的本地机器上运行,使用 Visual Studio 2015。
有人知道为什么这么慢吗?
【问题讨论】:
-
看起来by default“模拟调制解调器速度”达到 1kb/150ms = 6.66kb/s。 (1.5 兆字节)*(1024 千字节/兆字节)/(6.66 千字节/秒)= 3.8 分钟,但如果我理解正确,这不考虑实际下载,例如,您下载 1kb,然后它会休眠 150 毫秒,所以实际上它就像每千字节 155 毫秒或其他什么,所以它应该比 3.8 分钟还要长。 60 秒比应有的速度快 4 倍,不是吗?
-
@Quantic Dunno,我觉得一切都很奇怪。我原以为模拟调制解调器速度只会减慢下载速度,而不是引入暂停。我尝试减少延迟,如这篇博文 rightmove.co.uk/dev/blog/… 中所示,但它仍然非常缓慢。
-
你能解释一下你所说的“慢”是什么意思吗?调制解调器的最大值为每秒 53.3 千字节,即 6.66 千字节/秒,并且与它们的值匹配得很好。这相当于每分钟 400 KB,因此下载约 4mb 需要 10 分钟。对于调制解调器来说,这不是“慢”,这是任何调制解调器所能达到的速度,所以我觉得答案就是你的问题“为什么这么慢?”是:它并不慢,它实际上以适合调制解调器的速度运行,甚至快一点。至于模拟速度,我不知道“正确”的方法,只是那个提琴手似乎每 1kb 睡觉以模拟较慢的速度。
-
@Quantic 我的意思是,当使用我的网络浏览器下载文件时,我在几秒钟内获得了 3Mb,而当从代码访问我的 WCF 服务时,下载 1.5 需要 40-60 秒mb。在没有调制解调器模拟的情况下,WCF 调用在大约 500 毫秒内完成。
-
好吧,如果有什么进展的话太快,也不算太慢。在调制解调器上下载 1.5 兆字节应该需要 4 分钟,而不是 60 秒。或者,如果它是 1.5 兆比特,也就是大约 188 千字节,那么它的速度是正确的。调制解调器每秒大约 6 KB = 48 KB / 秒,在 60 秒内它只会下载 360 KB ~= 2.8 兆比特。调制解调器慢,相对于今天的数据来说非常慢。