Message399184
For what it's worth, in my benchmarks on 3.11, methodcaller was already a bit faster than lambda:
#################### Builtin calls ####################
PS > .\python.bat -m pyperf timeit -s "from operator import methodcaller as mc" -s "reverse_it = mc('reverse')" -s "arr = []" "reverse_it(arr)"
Running Release|x64 interpreter...
.....................
Mean +- std dev: 84.3 ns +- 1.9 ns
PS >.\python.bat -m pyperf timeit -s "reverse_it = lambda x: x.reverse()" -s "arr = []" "reverse_it(arr)"
Running Release|x64 interpreter...
.....................
Mean +- std dev: 95.5 ns +- 2.9 ns
#################### Python calls ####################
PS > .\python.bat -m pyperf timeit -s "from operator import methodcaller as mc" -s "reverse_it = mc('reverse')" -s "class A: reverse = lambda self: None" -s "arr=A()" "reverse_it(arr)"
Running Release|x64 interpreter...
.....................
Mean +- std dev: 140 ns +- 4 ns
PS > .\python.bat -m pyperf timeit -s "reverse_it = lambda x: x.reverse()" -s "class A: reverse = lambda self: None" -s "arr=A()" "reverse_it(arr)"
Running Release|x64 interpreter...
.....................
Mean +- std dev: 159 ns +- 4 ns |
|
| Date |
User |
Action |
Args |
| 2021-08-07 14:16:03 | Dennis Sweeney | set | recipients:
+ Dennis Sweeney, Antony.Lee |
| 2021-08-07 14:16:03 | Dennis Sweeney | set | messageid: <1628345763.41.0.392352416752.issue44850@roundup.psfhosted.org> |
| 2021-08-07 14:16:03 | Dennis Sweeney | link | issue44850 messages |
| 2021-08-07 14:16:03 | Dennis Sweeney | create | |
|