[New-bugs-announce] [issue46740] Improve Telnetlib's throughput

Martin Kirchgessner report at bugs.python.org
Sun Feb 13 15:17:40 EST 2022

New submission from Martin Kirchgessner <martin.kirch at gmail.com>:

While using `telnetlib` I sometimes received unusually "large" messages (around 1Mb) from another process on the same machine, and was surprised `read_until` took more than a second. After instrumenting I discovered such messages were received at roughly 500kbyte/s.

I think this low throughput comes from two implementation details:

 - `Telnet.fill_rawq` is calling `self.sock.recv(50)`, whereas 4096 is now recommended
 - the `Telnet.process_rawq` method is transferring from raw queue to cooked queue by appending byte per byte.

For the latter, transferring by slices looks much faster (I'm measuring at least 5x). I'm preparing a PR.

components: Library (Lib)
messages: 413195
nosy: martin_kirch
priority: normal
severity: normal
status: open
title: Improve Telnetlib's throughput
type: resource usage
versions: Python 3.10

Python tracker <report at bugs.python.org>

More information about the New-bugs-announce mailing list