On Feb 25, 2019, at 8:23 PM, Eric Snow firstname.lastname@example.org wrote:
So it looks like commit ef4ac967 is not responsible for a performance regression.
I did narrow it down to that commit and I can consistently reproduce the timing differences.
That said, I'm only observing the effect when building with the Mac default Clang (Apple LLVM version 10.0.0 (clang-1000.11.45.5). When building GCC 8.3.0, there is no change in performance.
I conclude this is only an issue for Mac builds.
I ran the "performance" suite (https://github.com/python/performance), which has 57 different benchmarks.
Many of those benchmarks don't measure eval-loop performance. Instead, they exercise json, pickle, sqlite etc. So, I would expect no change in many of those because they weren't touched.
Victor said he generally doesn't care about 5% regressions. That makes sense for odd corners of Python. The reason I was concerned about this one is that it hits the eval-loop and seems to effect every single op code. The regression applies somewhat broadly (increasing the cost of reading and writing local variables by about 20%). The effect is somewhat broad based.
That said, it seems to be compiler specific and only affects the Mac builds, so maybe we can decide that we don't care.