Message285167
Full commit message:
changeset: 106081:b9404639a18c
tag: tip
user: Victor Stinner <victor.stinner@gmail.com>
date: Wed Jan 11 00:07:40 2017 +0100
files: Include/abstract.h Objects/abstract.c Objects/typeobject.c
description:
call_method() now uses _PyObject_FastCall()
Issue #29233: Replace the inefficient _PyObject_VaCallFunctionObjArgs() with
_PyObject_FastCall() in call_method() and call_maybe().
Only a few functions call call_method() and call it with a fixed number of
arguments. Avoid the complex and expensive _PyObject_VaCallFunctionObjArgs()
function, replace it with an array allocated on the stack with the exact number
of argumlents.
It reduces the stack consumption, bytes per call, before => after:
test_python_call: 1168 => 1152 (-16 B)
test_python_getitem: 1344 => 1008 (-336 B)
test_python_iterator: 1568 => 1232 (-336 B)
Remove the _PyObject_VaCallFunctionObjArgs() function which became useless.
Rename it to object_vacall() and make it private. |
|
Date |
User |
Action |
Args |
2017-01-10 23:22:57 | vstinner | set | recipients:
+ vstinner, python-dev, serhiy.storchaka |
2017-01-10 23:22:57 | vstinner | set | messageid: <1484090577.91.0.180682367255.issue29233@psf.upfronthosting.co.za> |
2017-01-10 23:22:57 | vstinner | link | issue29233 messages |
2017-01-10 23:22:57 | vstinner | create | |
|