[issue28870] Reduce stack consumption of PyObject_CallFunctionObjArgs() and like

STINNER Victor report at bugs.python.org
Tue Jan 10 19:50:29 EST 2017


STINNER Victor added the comment:

Result of attached bench_recursion-2.py comparing before/after the 3 changes reducing the stack consumption:

test_python_call: Median +- std dev: [a30cdf366c02] 512 us +- 12 us -> [6478e6d0476f] 467 us +- 21 us: 1.10x faster (-9%)
test_python_getitem: Median +- std dev: [a30cdf366c02] 485 us +- 26 us -> [6478e6d0476f] 437 us +- 18 us: 1.11x faster (-10%)
test_python_iterator: Median +- std dev: [a30cdf366c02] 1.15 ms +- 0.04 ms -> [6478e6d0476f] 1.03 ms +- 0.06 ms: 1.12x faster (-10%)

At least, it doesn't seem to be slower. Maybe the speedup comes from call_function() inlining. This function was probably already inlined when using PGO build.

The script was written by Serhiy in the issue #29227, I modified it to use the Runner.timeit() API for convenience.

----------
Added file: http://bugs.python.org/file46249/bench_recursion-2.py

_______________________________________
Python tracker <report at bugs.python.org>
<http://bugs.python.org/issue28870>
_______________________________________


More information about the Python-bugs-list mailing list