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 serhiy.storchaka
Recipients serhiy.storchaka, vstinner, yselivanov
Date 2016-08-09.19:45:50
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <1470771950.51.0.249852514927.issue27128@psf.upfronthosting.co.za>
In-reply-to
Content
Benchmarking results look nice, but despite the fact that this patch is only small part of issue26814, it looks to me larger that it could be.

1. The patch includes two parts: adding _PyObject_FastCall() and adding PyObject_CallNoArg() and PyObject_CallArg1(). How large the role of latter functions in the speed up? Can we first just add _PyObject_FastCall() and measure the effect of adding PyObject_CallNoArg() and PyObject_CallArg1() separately? Can existing function PyObject_Call() be optimized to achieve a comparable benefit?

2. I think that supporting keyword arguments in _PyObject_FastCall() doesn't make much sense now. Calling with keyword arguments adds such much overhead, that it dwarfs the benefit of avoiding the creation of one tuple. I think that the patch can be simpler if drop the support of keyword arguments.

3. The patch adds two files for one function _PyStack_AsTuple(). I would prefer something like _PyTuple_FromArray(). It could be used in other places, not just in argument parsing.
History
Date User Action Args
2016-08-09 19:45:50serhiy.storchakasetrecipients: + serhiy.storchaka, vstinner, yselivanov
2016-08-09 19:45:50serhiy.storchakasetmessageid: <1470771950.51.0.249852514927.issue27128@psf.upfronthosting.co.za>
2016-08-09 19:45:50serhiy.storchakalinkissue27128 messages
2016-08-09 19:45:50serhiy.storchakacreate