ノンブロッキング ソケットからデータを受信するための最適なスリープ値を探しています。例えば:
while True:
data=s.recv(1024)
if not data:
time.sleep(10) #10ms
else:
pass #...
スリープしないと CPU 使用率が 100% になるため、CPU 使用率と帯域幅を最適化する方法はありますか? CPU がスレッド切り替えを実行できるようにするには、どのくらいスリープ状態にする必要がありますか?
ところで、SO_SNDBUF/SO_RECVBUF を介してソケットのバッファを設定し、TCP_NODELAY を設定することは理にかなっていますか、それともそれらを組み合わせるべきではありませんか?