Message281542
Following patch replaces abstract types API with concrete types API and makes the memory consumption of the pattern object smaller if there are no named groups.
$ ./python -m perf timeit -s "import re; m = re.match('(?P<first>first) (?P<second>second)', 'first second')" -- "m.lastgroup"
Unpatched: Median +- std dev: 89.8 ns +- 1.8 ns
Patched: Median +- std dev: 80.5 ns +- 3.3 ns
$ ./python -m perf timeit -s "import re; m = re.match('(?P<first>first) (?P<second>second)', 'first second')" -- "m.groupdict()"
Unpatched: Median +- std dev: 803 ns +- 16 ns
Patched: Median +- std dev: 711 ns +- 16 ns
$ ./python -m perf timeit -s "import re; m = re.match('(?P<first>first) (?P<second>second)', 'first second')" -- "m['first']"
Unpatched: Median +- std dev: 228 ns +- 14 ns
Patched: Median +- std dev: 217 ns +- 11 ns |
|
Date |
User |
Action |
Args |
2016-11-23 08:09:29 | serhiy.storchaka | set | recipients:
+ serhiy.storchaka, vstinner, ezio.melotti, mrabarnett, python-dev |
2016-11-23 08:09:29 | serhiy.storchaka | set | messageid: <1479888569.07.0.698365705404.issue28765@psf.upfronthosting.co.za> |
2016-11-23 08:09:28 | serhiy.storchaka | link | issue28765 messages |
2016-11-23 08:09:28 | serhiy.storchaka | create | |
|