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



_______________________________________________
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com

Reply via email to