bpo-37017: Make PyObject_CallMethodObjArgs use LOAD_METHOD optimization by msullivan · Pull Request #13516 · python/cpython

@msullivan

Update PyObject_CallMethodObjArgs and _PyObject_CallMethodIdObjArgs
to use _PyObject_GetMethod to avoid creating a bound method object
in many cases.

On a microbenchmark of PyObject_CallMethodObjArgs calling a method on
an interpreted Python class, this optimization resulted in a 1.7x
speedup.

@msullivan

methane

@msullivan

pablogsal

DinoV pushed a commit to DinoV/cpython that referenced this pull request

Jan 14, 2020
…ythonGH-13516)

Update PyObject_CallMethodObjArgs and _PyObject_CallMethodIdObjArgs
to use _PyObject_GetMethod to avoid creating a bound method object
in many cases.

On a microbenchmark of PyObject_CallMethodObjArgs calling a method on
an interpreted Python class, this optimization resulted in a 1.7x
speedup.