Message285574
| Author |
vstinner |
| Recipients |
larry, methane, serhiy.storchaka, vstinner |
| Date |
2017年01月16日.17:30:51 |
| SpamBayes Score |
-1.0 |
| Marked as misclassified |
Yes |
| Message-id |
<1484587851.78.0.529922329593.issue29286@psf.upfronthosting.co.za> |
| In-reply-to |
| Content |
Changes 27dc9a1c061e and 01b06ca45f64 converted the str (Unicode) methods to Argument Clinic, cool! But str methods taking more than one argument use positional-only arguments.
Currently, Argument Clinic doesn't use METH_FASTCALL for these methods, but METH_VARARGS.
There are two options:
* Allow passing arguments as keywoards: str.replace(old='a', new='b')
* Enhance Argument Clinic to use also METH_FASTCALL for functions using positional-only functions
The goal is to speedup method calls. Example with str.replace():
$ ./python-patch -m perf timeit '"a".replace("x", "y")' --duplicate=100 --compare-to ./python-ref
python-ref: ..................... 132 ns +- 1 ns
python-patch: ..................... 102 ns +- 2 ns
Median +- std dev: [python-ref] 132 ns +- 1 ns -> [python-patch] 102 ns +- 2 ns: 1.30x faster (-23%) |
|
History
|
|---|
| Date |
User |
Action |
Args |
| 2017年01月16日 17:30:51 | vstinner | set | recipients:
+ vstinner, larry, methane, serhiy.storchaka |
| 2017年01月16日 17:30:51 | vstinner | set | messageid: <1484587851.78.0.529922329593.issue29286@psf.upfronthosting.co.za> |
| 2017年01月16日 17:30:51 | vstinner | link | issue29286 messages |
| 2017年01月16日 17:30:51 | vstinner | create |
|