Message286728
| Author |
methane |
| Recipients |
methane, python-dev, vstinner, yselivanov |
| Date |
2017年02月02日.01:17:23 |
| SpamBayes Score |
-1.0 |
| Marked as misclassified |
Yes |
| Message-id |
<1485998246.37.0.792073597156.issue29263@psf.upfronthosting.co.za> |
| In-reply-to |
| Content |
LOAD_METHOD support was based on tp_fastcall.
Without LOAD_METHOD support, methoddescr_get is called and
stack layout after LOAD_METHOD is:
NULL, (bound)PyCFunction, arg1, arg2, ... argN
With LOAD_METHOD support, stack layout is:
PyMethodDescrObject, self, arg1, ... argN
And tp_call (or tp_fastcall) of method descriptor is called when CALL_METHOD.
Without tp_fastcall, it means pack&unpack tuple happens.
It is more heavy than creating temporary PyCFunction.
---
Other ideas to support LOAD_METHOD for C function are:
* Add _PyMethodDescr_FastCallKeywords and call it in call_function.
* Create unbound PyCFunction and cache it |
|
History
|
|---|
| Date |
User |
Action |
Args |
| 2017年02月02日 01:17:26 | methane | set | recipients:
+ methane, vstinner, python-dev, yselivanov |
| 2017年02月02日 01:17:26 | methane | set | messageid: <1485998246.37.0.792073597156.issue29263@psf.upfronthosting.co.za> |
| 2017年02月02日 01:17:26 | methane | link | issue29263 messages |
| 2017年02月02日 01:17:23 | methane | create |
|