[Python-Dev] socket.c, _rbufsize (original) (raw)
Kristján Valur Jónsson kristjan at ccpgames.com
Thu Nov 27 15:50:07 CET 2008
- Previous message: [Python-Dev] __import__ problems
- Next message: [Python-Dev] socket.c, _rbufsize
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
I came across this in socket.c: # _rbufsize is the suggested recv buffer size. It is strictly # obeyed within readline() for recv calls. If it is larger than # default_bufsize it will be used for recv calls within read().
What I worry about is the readline() case. Is there a reason why we want to strictly obey it for that function? Note that in the documentation for _fileobject.read() it says: # Use max, disallow tiny reads in a loop as they are very inefficient.
The same argument surely applies for readline().
The reason I am fretting about this is that httplib.py (and therefore xmlrpclib.py) specify bufsize=0 when createing their socket fileobjects, presumably to make sure that write() operations are not buffered but flushed immediately. But this has the side effect of setting the _rbufsize to 1, and so readline() calls become very slow.
I suggest that readline() be made to use at least defaultbufsize, like read(). Any thoughts?
Cheers,
Kristján
-------------- next part -------------- An HTML attachment was scrubbed... URL: <http://mail.python.org/pipermail/python-dev/attachments/20081127/98ba228d/attachment.htm>
- Previous message: [Python-Dev] __import__ problems
- Next message: [Python-Dev] socket.c, _rbufsize
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]