New submission from Inada Naoki <songofaca...@gmail.com>:
__iter__ method of BZ2File, GzipFile, and LZMAFile is IOBase.__iter__. It calls `readline()` for each line. Since `readline()` is defined as Python function, it is slower than C iterator. Adding custom __iter__ method that delegates to underlying buffer __iter__ makes `for line in file` 2x faster. def __iter__(self): self._check_can_read() return self._buffer.__iter__() --- The original issue is reported here. https://discuss.python.org/t/non-optimal-bz2-reading-speed/6869 This issue is relating to #43785. ---------- components: Library (Lib) messages: 390599 nosy: methane priority: normal severity: normal status: open title: Optimize BZ2File, GzipFile, and LZMAFile __iter__ method. type: performance versions: Python 3.10 _______________________________________ Python tracker <rep...@bugs.python.org> <https://bugs.python.org/issue43787> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com