6

cProfile を使用して (PyMongo 3.0.3 を大量の操作で使用して) コードでプロファイリングを行ったところ、ソケットに多くの時間が費やされていることがわかりました。

14006 68.823 0.005 68.823 0.005 {method 'recv' of '_socket.socket' objects}

このやや関連する回答を見つけましたが、解決策は簡単です。ライブラリコードを変更せずにTCP_NOWAITオプションを渡す方法はありますか?PyMongo

4

1 に答える 1

-1

たぶん、ソケットにパッチを当てることができます...

#before you import or do anything...
import socket
socket.raw_socket = socket.socket

def my_socket(*args, **kws):
    sock = socket.socket(*args, **kws)
    sock.setsockopt(socket.IPPROTO_TCP, socket.TCP_NODELAY, 1)
    return sock

socket.socket = my_socket
#cross fingers ...
于 2016-03-26T20:42:41.097 に答える