From: Gregory P. Smith Date: Sun, 8 Dec 2013 18:56:07 +0000 (-0800) Subject: Fixes issue #19929: Call os.read with 32768 within subprocess.Popen X-Git-Tag: v3.4.0b2~292^2 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=589ecda56eb23937ba871734598cda8f11395389;p=thirdparty%2FPython%2Fcpython.git Fixes issue #19929: Call os.read with 32768 within subprocess.Popen communicate rather than 4096 for efficiency. A microbenchmark shows Linux and OS X both using ~50% less cpu time this way. --- diff --git a/Lib/subprocess.py b/Lib/subprocess.py index 546a7a0fcda8..78e4fcfc596e 100644 --- a/Lib/subprocess.py +++ b/Lib/subprocess.py @@ -1654,7 +1654,7 @@ class Popen(object): if self._input_offset >= len(self._input): close_unregister_and_remove(fd) elif mode & select_POLLIN_POLLPRI: - data = os.read(fd, 4096) + data = os.read(fd, 32768) if not data: close_unregister_and_remove(fd) self._fd2output[fd].append(data) diff --git a/Misc/NEWS b/Misc/NEWS index 0eac7fb2ad74..5eacf9c9a590 100644 --- a/Misc/NEWS +++ b/Misc/NEWS @@ -18,6 +18,10 @@ Core and Builtins Library ------- +- Issue #19929: Call os.read with 32768 within subprocess.Popen.communicate + rather than 4096 for efficiency. A microbenchmark shows Linux and OS X + both using ~50% less cpu time this way. + - Issue #19506: Use a memoryview to avoid a data copy when piping data to stdin within subprocess.Popen.communicate. 5-10% less cpu usage.