Message259714
myself> Ok. Now I'm lost. We have so many patches :-) Which one do you prefer?
I read again fully this *old* issue, well, *almost* all messages.
Well, it's clear that no consensus was found yet :-) I see two main trends: optimize most cases (optimize most operators for int and float, ex: fastint5_4.patch) versus optimize very few cases to limit changes and to limit effects on ceval.c (ex: inline-2.patch).
Marc-Andre and Antoine asked to not stick to micro-optimizations but think wider: run macro benchmarks, like perf.py, and suggest to use PyPy, Numba, Cython & cie for users who use best performances on numeric functions.
They also warned about subtle side-effects of any kind of change on ceval.c which may be counter-productive. It was shown in the long list of patches that some of them introduced performance *regressions*.
I don't expect that CPython can beat any compiler emiting machine code. CPython will always have to pay the price of boxing/unboxing and its loop evaluating bytecode. We can do *better*, the question is "how far?".
I think that we gone far enough on investigation *all* different options to optimize 1+2 ;-) Each option was micro-benchmarked very carefully.
Now I suggest to focus on *macro* benchmarks to help use to take a decision. I will run perf.py on fastint5_4.patch and inline-2.patch. |
|
Date |
User |
Action |
Args |
2016-02-06 02:22:08 | vstinner | set | recipients:
+ vstinner, lemburg, rhettinger, mark.dickinson, pitrou, casevh, skrah, Yury.Selivanov, serhiy.storchaka, yselivanov, josh.r, zbyrne |
2016-02-06 02:22:08 | vstinner | set | messageid: <1454725328.45.0.846399253301.issue21955@psf.upfronthosting.co.za> |
2016-02-06 02:22:08 | vstinner | link | issue21955 messages |
2016-02-06 02:22:07 | vstinner | create | |
|