비 차단 소켓에서 데이터를 수신하기 위해 최적의 절전 값을 찾고 있습니다. 예 :non-blocking 호출로 잠들었습니다.
while True:
data=s.recv(1024)
if not data:
time.sleep(10) #10ms
else:
pass #...
아무런 수면으로도 CPU 사용률이 100 %가되지 않으므로 최고의 CPU 사용률과 대역폭을 얻는 방법에 대해 생각해보십시오. CPU가 스레드 전환을 수행 할 수있는 시간이 얼마나 오래 있습니까?
Btw, SO_SNDBUF/SO_RECVBUF를 통해 소켓의 버퍼를 설정하고 TCP_NODELAY를 설정하는 것이 합당한가, 아니면 결합하지 말아야 하는가?
패턴을 취소합니다. 지금! 'sleep()'함수가 존재했음을 잊어 버려라. 'sleep()'을 사용할 때마다 또 다른 적절한 방법이 있습니다. –