[Checkins] SVN: zc.ngi/trunk/src/zc/ngi/async.py - make buffer size a constant

Benji York benji at zope.com
Wed Apr 15 18:16:39 EDT 2009


Log message for revision 99206:
  - make buffer size a constant
  - up the listen backlog to 255 (makes about a 3x performance differnce
    under heavy loads of short connections); should probably be
    configurable instead
  

Changed:
  U   zc.ngi/trunk/src/zc/ngi/async.py

-=-
Modified: zc.ngi/trunk/src/zc/ngi/async.py
===================================================================
--- zc.ngi/trunk/src/zc/ngi/async.py	2009-04-15 22:03:29 UTC (rev 99205)
+++ zc.ngi/trunk/src/zc/ngi/async.py	2009-04-15 22:16:39 UTC (rev 99206)
@@ -46,6 +46,8 @@
     errno.EINTR: 0,
     }
 
+BUFFER_SIZE = 8*1024
+
 class dispatcher(asyncore.dispatcher):
 
     def __init__(self, sock, addr, map=_map):
@@ -141,7 +143,7 @@
 
         while 1:
             try:
-                d = self.recv(8192)
+                d = self.recv(BUFFER_SIZE)
             except socket.error, err:
                 if err[0] in expected_socket_read_errors:
                     return
@@ -158,7 +160,7 @@
                 self.logger.exception("handle_input failed")
                 self.handle_close("handle_input failed")
 
-            if len(d) < 8192:
+            if len(d) < BUFFER_SIZE:
                 break
 
     def handle_write_event(self):
@@ -345,7 +347,7 @@
         self.set_reuse_addr()
         self.logger.info("listening on %s", self.addr)
         self.bind(self.addr)
-        self.listen(5)
+        self.listen(255)
         notify_select()
 
     def handle_accept(self):
@@ -425,7 +427,7 @@
 
     def handle_read(self):
         try:
-            self.recv(8192)
+            self.recv(BUFFER_SIZE)
         except socket.error:
             return
 



More information about the Checkins mailing list