[issue20540] Python 3.3/3.4 regression in multiprocessing manager ?
Irvin Probst
report at bugs.python.org
Fri Feb 7 15:53:52 CET 2014
Irvin Probst added the comment:
FWIW, according to your comments I tried a quick and dirty fix in my code as I can't wait for a new Python release to make it work:
The do_stuff function now does:
"""
def do_stuff():
client=make_client('',6666, b"foo")
data_proxy=client.get_proxy()
#make a dummy request to get the underlying
#fd we are reading from (see bug #20540)
c=data_proxy.good([1,2],[3,4])
fd=data_proxy._tls.connection._handle
#setting TCP_NODELAY on 3.3.x should fix the delay issue until a new release
sock=socket.fromfd(fd, socket.AF_INET, socket.SOCK_STREAM)
sock.setsockopt(socket.IPPROTO_TCP, socket.TCP_NODELAY, 1)
for i in range(10):
t_s=time.time()
c=data_proxy.good([1,2],[3,4])
print(time.time()-t_s)
print(c)
"""
I'm now down to 0.04s per request instead of ~0.08s, I guess the remaining delay comes from the server side socket which has not been affected by the TCP_NODELAY on the client side.
Regards.
----------
_______________________________________
Python tracker <report at bugs.python.org>
<http://bugs.python.org/issue20540>
_______________________________________
More information about the Python-bugs-list
mailing list