From 734a4af152de71594cd4f355d79ccdae3013ed6a Mon Sep 17 00:00:00 2001 From: Ma Lin Date: Sat, 2 Apr 2022 14:01:26 +0800 Subject: [PATCH] multiprocessing: micro-optimize Connection.send_bytes() method When m.itemsize > 1, avoid copying memory. --- Lib/multiprocessing/connection.py | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/Lib/multiprocessing/connection.py b/Lib/multiprocessing/connection.py index 1cca66d5661e34..65303d29f51f8f 100644 --- a/Lib/multiprocessing/connection.py +++ b/Lib/multiprocessing/connection.py @@ -188,10 +188,9 @@ def send_bytes(self, buf, offset=0, size=None): self._check_closed() self._check_writable() m = memoryview(buf) - # HACK for byte-indexing of non-bytewise buffers (e.g. array.array) if m.itemsize > 1: - m = memoryview(bytes(m)) - n = len(m) + m = m.cast('B') + n = m.nbytes if offset < 0: raise ValueError("offset is negative") if n < offset: