-
Victor Stinner yazdı
Issue #29507: Optimize slots calling Python methods. For Python methods, get the unbound Python function and prepend arguments with self, rather than calling the descriptor which creates a temporary PyMethodObject. Add a new _PyObject_FastCall_Prepend() function used to call the unbound Python method with self. It avoids the creation of a temporary tuple to pass positional arguments. Avoiding temporary PyMethodObject and avoiding temporary tuple makes Python slots up to 1.46x faster. Microbenchmark on a __getitem__() method implemented in Python: Median +- std dev: 121 ns +- 5 ns -> 82.8 ns +- 1.0 ns: 1.46x faster (-31%) Co-Authored-by: INADA Naoki <songofacandy@gmail.com>
516b9816
Adı |
Son kayıt (commit)
|
Son güncelleme |
---|---|---|
.github | ||
Doc | ||
Grammar | ||
Include | ||
Lib | ||
Mac | ||
Misc | ||
Modules | ||
Objects | ||
PC | ||
PCbuild | ||
Parser | ||
Programs | ||
Python | ||
Tools | ||
.bzrignore | ||
.gitignore | ||
.hgeol | ||
.hgignore | ||
.hgtags | ||
.hgtouch | ||
LICENSE | ||
Makefile.pre.in | ||
README | ||
aclocal.m4 | ||
config.guess | ||
config.sub | ||
configure | ||
configure.ac | ||
install-sh | ||
pyconfig.h.in | ||
setup.py |