This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Author vstinner
Recipients python-dev, serhiy.storchaka, vstinner, xiang.zhang
Date 2017-01-10.16:02:07
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <1484064127.42.0.262310218668.issue28870@psf.upfronthosting.co.za>
In-reply-to
Content
Stack used by each C function of test_python_call.

3.4:

(a) method_call: 64

(b) PyObject_Call: 48
(b) function_call: 160
(b) PyEval_EvalCodeEx: 176

(c) PyEval_EvalFrameEx: 256
(c) call_function: 0
(c) do_call: 0
(c) PyObject_Call: 48

(d) slot_tp_call: 64
(d) PyObject_Call: 48

=> total: 864


default:

(a) method_call: 80

(b) _PyObject_FastCallDict: 64
(b) _PyFunction_FastCallDict: 208
(b) _PyEval_EvalCodeWithName: 176

(c) _PyEval_EvalFrameDefault: 320
(c) call_function: 80
(c) _PyObject_FastCallKeywords: 80

(d) slot_tp_call: 64
(d) PyObject_Call: 48

=> total: 1120


Groups of functions, 3.4 => default:

(a) 64 => 80 (+16)
(b) 384 => 448 (+64)
(c) 304 => 480 (+176)
(d) 112 => 112 (=)


I used gdb:

(gdb) set $last=0
(gdb) define size
> print $last - (uintptr_t)$rsp
> set $last = (uintptr_t)$rsp
> down
(gdb) up
(gdb) up
(gdb) up
(... until a first method_call ...)
(gdb) size
(gdb) size
...
History
Date User Action Args
2017-01-10 16:02:07vstinnersetrecipients: + vstinner, python-dev, serhiy.storchaka, xiang.zhang
2017-01-10 16:02:07vstinnersetmessageid: <1484064127.42.0.262310218668.issue28870@psf.upfronthosting.co.za>
2017-01-10 16:02:07vstinnerlinkissue28870 messages
2017-01-10 16:02:07vstinnercreate