You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Stackrefs (#118450) introduced a large performance regression on Windows #121263
#118450 "Convert the evaluation stack to stack refs" (by @Fidget-Spinner) unfortunately seems to have introduced a 7% - 11% performance regression overall (though as much as 25% for some benchmarks) on Windows only. Linux (both x86_64 and aarch64) and macOS (arm) seem to have a change beneath the noise threshold. To be clear, @Fidget-Spinner's work is great and the lesson here is that for these sorts of sweeping low-level changes, we should have benchmarked on all of the Tier 1 platforms to be certain.
I don't know what the cause is -- it is probably MSVC not being able to "optimize through" something and introducing unnecessary overhead, but that's just a theory.
@mdboom Thanks for bringing this up! In the past this was usually due to MSVC not being able to inline in the eval loop because its too big of a function. I can change all the static inlines to macros and try benchmarking again?
Activity
Fidget-Spinner commentedon Jul 2, 2024
@mdboom Thanks for bringing this up! In the past this was usually due to MSVC not being able to inline in the eval loop because its too big of a function. I can change all the static inlines to macros and try benchmarking again?
mdboom commentedon Jul 2, 2024
Sounds like a good first thing to try. Thanks!
gh-121263: Macro-ify most stackref functions for MSVC (GH-121270)
pythongh-121263: Macro-ify most stackref functions for MSVC (pythonGH…
pythongh-121263: Macro-ify most stackref functions for MSVC (pythonGH…
Revert "pythongh-121263: Macro-ify most stackref functions for MSVC (p…