【发布时间】:2012-01-05 00:56:54
【问题描述】:
我有一个在 Windows 上运行良好的应用程序,但在 Windows 7 上似乎变得非常慢。我使用“sendto”将问题跟踪到我在其上进行 IP 多播发送的未绑定套接字。这些调用通常在约 1 毫秒内完成,但在我的 Windows 7 64 位配置上,我看到一些完成时间为 1 秒到 2 秒(是的,慢了 1000 倍)。我的数据包相当大,我已经相应地重新配置了套接字缓冲区。
在这些特定的测试中,我有六个应用程序在我的一台笔记本电脑上运行,形成一个多播组,因此多播发送实际上是环回的,并且永远不需要通过网络传输。我不知道我在不同机器上的应用程序是否会出现问题;将测试这种情况,但即使问题在其他配置中消失,我也需要 Isis2 以这种方式工作。
有人见过这样的事情吗?
我很乐意分享我的代码(这是 Isis2 系统的一部分,可从康奈尔大学免费下载,地址为 http://www.cs.cornell.edu/ken/isis2),但我没有该问题的 2 行演示。但是,我要说的是,Isis2 的这部分现在已经相当成熟了,并且随着我扩展并使用该库,它已经愉快地多播了 3 年左右。如前所述,我怀疑这可能是 Windows 7 的问题。
我从来没有看到小数据包的问题,所以它肯定与我发送大数据包有关。
【问题讨论】:
-
不过,我可以保证,如果你们当中有人对我有好的见解,我一定会接受。
-
Ken,如果您最终在网站之外找到了答案,请随时回答您自己的问题并将其标记为已接受。这些信息将来也可能对其他人有用!
-
好建议,我会这样做的。非常旧的线程现在被标记为关闭,所以我不能追溯。有点遗憾,因为事实上你的观点已经死了。
-
“我从来没有看到小包的问题,所以它肯定与我发送大包有关。”你的“大”有多大?
-
Bengie,它会有所不同,但在这种情况下,我将发送和接收缓冲区大小设置为 32kbytes