我正在寻找一个最佳睡眠值来从非阻塞套接字接收数据。例如:
while True:
data=s.recv(1024)
if not data:
time.sleep(10) #10ms
else:
pass #...
没有睡眠会导致 100% 的 CPU 使用率,所以知道如何获得最佳的 CPU 使用率和带宽吗?睡眠需要多长时间才能让 CPU 进行线程切换?
顺便说一句,通过 SO_SNDBUF/SO_RECVBUF 设置套接字的缓冲区并设置 TCP_NODELAY 是否有意义,或者不应该将它们组合起来?