[issue38252] Use 8-byte step to detect ASCII sequence in 64bit Windows builds
Ma Lin
report at bugs.python.org
Mon Sep 23 10:52:22 EDT 2019
Ma Lin <malincns at 163.com> added the comment:
There are 4 functions have the similar code, see PR 16334.
Just replaced the `unsigned long` type with `size_t` type, got these benchmarks.
Can this be backported to 3.8 branch?
1. bytes.isascii()
D:\dev\cpython\PCbuild\amd64\python.exe -m pyperf timeit -s "b = b'x' * 100_000_000; f = b.isascii;" "f()"
+-----------+-----------+------------------------------+
| Benchmark | isascii_a | isascii_b |
+===========+===========+==============================+
| timeit | 11.7 ms | 7.84 ms: 1.50x faster (-33%) |
+-----------+-----------+------------------------------+
2. bytes.decode('latin1')
D:\dev\cpython\PCbuild\amd64\python.exe -m pyperf timeit -s "b = b'x' * 100_000_000; f = b.decode;" "f('latin1')"
+-----------+----------+-----------------------------+
| Benchmark | latin1_a | latin1_b |
+===========+==========+=============================+
| timeit | 60.3 ms | 57.4 ms: 1.05x faster (-5%) |
+-----------+----------+-----------------------------+
3. bytes.decode('ascii')
D:\dev\cpython\PCbuild\amd64\python.exe -m pyperf timeit -s "b = b'x' * 100_000_000; f = b.decode;" "f('ascii')"
+-----------+---------+-----------------------------+
| Benchmark | ascii_a | ascii_b |
+===========+=========+=============================+
| timeit | 48.5 ms | 47.1 ms: 1.03x faster (-3%) |
+-----------+---------+-----------------------------+
4. bytes.decode('utf8')
D:\dev\cpython\PCbuild\amd64\python.exe -m pyperf timeit -s "b = b'x' * 100_000_000; f = b.decode;" "f('utf8')"
+-----------+---------+-----------------------------+
| Benchmark | utf8_a | utf8_b |
+===========+=========+=============================+
| timeit | 48.3 ms | 47.1 ms: 1.03x faster (-3%) |
+-----------+---------+-----------------------------+
----------
_______________________________________
Python tracker <report at bugs.python.org>
<https://bugs.python.org/issue38252>
_______________________________________
More information about the Python-bugs-list
mailing list