New submission from John O'Connor <tehj...@gmail.com>: I noticed there are a few more common cases that can be sped up in bytes.join().
When: - The sequence length and separator length are both 0 - The separator length is 0 or 1 - The separator string contains only 1 distinct byte These could also be applied to other sequence types. for i in {{0..5}}; do ./python -m timeit -s "f=open('/usr/share/dict/words', 'rb'); L=f.readlines()" \ "b' '.join(L)"; done - BEFORE - 100 loops, best of 3: 3.79 msec per loop 100 loops, best of 3: 3.5 msec per loop 100 loops, best of 3: 3.75 msec per loop - AFTER - 100 loops, best of 3: 2.81 msec per loop 100 loops, best of 3: 2.81 msec per loop 100 loops, best of 3: 3.03 msec per loop ~20% speedup Same test on a smaller list (lines from LICENSE file) yields a similar 15-20% speedup. Same test on L = [b'1', b'2', b'3'] yields 10% speedup ---------- components: Interpreter Core files: bytes_join_optimization.patch keywords: patch messages: 142650 nosy: benjamin.peterson, ezio.melotti, haypo, jcon, pitrou priority: normal severity: normal status: open title: Optimzations for bytes.join() et. al type: performance versions: Python 3.3 Added file: http://bugs.python.org/file22976/bytes_join_optimization.patch _______________________________________ Python tracker <rep...@bugs.python.org> <http://bugs.python.org/issue12805> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com