Indy Sockets 在超线程机器上逐渐变慢
这是一个很遥远的事情,但也许有人有一个想法。我正在使用 IndySockets,这是一个在多线程(20-25 线程)网络爬行应用程序中扩展 .Net 套接字类的库。该应用程序在许多不同的服务器上运行,其中一些服务器打开了超线程。
使用超线程一开始会大大提高应用程序的效率(速度提高 30-50%),但在这些机器上的 IndySockets 调用在几天内会逐渐变得越来越慢。在不使用超线程的机器上不会发生这种情况。
更令人困惑的是,重新启动超线程机器似乎可以解决问题,即应用程序将在重新启动后再次以其初始的、非常快的速度运行。重新启动应用程序没有任何效果。
如果有人有任何建议,我将不胜感激。谢谢。
This is a long shot but maybe someone has an idea. I am using IndySockets, a library that extends .Net sockets classes in a multithreaded (20-25 threads) web crawling application. The app is run on a number of different servers, some of which have hyperthreading turned on.
Using hyperthreading greatly increases the efficiency of the application (30-50% speed improvement) at first, but IndySockets calls on these machines gradually get slower and slower over a period of days. This doesn't happen on the machines that do not use hyperthreading.
To make matters even more confusing, restarting the hyperthreaded machines seems to fix the problem ie the app will run at it's initial, very fast speed again after a restart. Restarting the application does not have any effect.
If anyone has any suggestions I'd appreciate it. Thanks.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我是 Indy 开发团队的成员。我没有听说过在超线程机器上运行 Indy 时出现任何此类问题。请使用分析器确保问题确实出现在 Indy 中而不是其他地方。
I am on the Indy development team. I have not heard of any such problem when running Indy on a hyper-threaded machine. Please use a profiler to make sure the problem really is in Indy and not elsewhere.