我已经写了一个程序,可以使用asyncore模块同时与多个服务器通信。在大多数情况下,我只是响应从服务器接收到的数据,但偶尔也需要发送一些“不同步”的数据。由于默认超时时间为30秒,因此在发送数据包之前存在明显的延迟,因此我将超时时间降低到0.1以获得更好的响应能力。
我的问题是:在性能方面使用这么低的超时值是个好主意吗?如果不是,有没有其他更好的方法来完成同样的事情?这样做的最佳实践是什么?
发布于 2010-10-04 19:02:11
回答我自己的问题:
对于这种类型的轮询应用程序,需要有一个较小的超时值。超时指定内部选择函数阻止等待套接字变为活动状态的时间。如果您频繁发送数据,则需要将超时设置为一个较小的值,以便select以可接受的时间间隔轮询套接字中的可写数据。否则,select将在检查前阻塞太长时间,并可能导致此类延迟。
最后,我使用了0.05秒的超时。
https://stackoverflow.com/questions/3789220
复制相似问题