-
Notifications
You must be signed in to change notification settings - Fork 52
Understand the outlier benchmarks on 3.14 (main) vs. 3.13.0 #726
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comments
mdp: With the introduction of tuple hash caching, this benchmark sped up 2x. It uses trees of namedtuples as dictionary keys for a graph-like data structure. |
deepcopy: Improved with python/cpython#114266 and python/cpython#128119 |
The |
json_dumps regression may be caused by using public PyUnicodeWriter APIs. (PR) python/cpython#133186 will fix json_dump. json_loads regression may be caused by same. (PR) |
Typing runtime protocols could be python/cpython#118202 ? |
My bisecting yesterday just found this same commit as the cause, so I think you are right. Thanks for proposing a solution. |
That change went into 3.13 before release so I don't think it can explain a difference between 3.13.0 and current main. |
I don't have time to help investigate right now what changes might have contributed to the slowdown in that benchmark, but I'd be happy to spend some time on it at PyCon. |
asyncio improvement is from python/cpython#107803 |
Great. It's also completely reasonable to say "this benchmark is a microbenchmark that isn't very indicative of real-world code" and not resolve it. I don't want to make all of those calls personally -- they kind of require domain expertise. |
Uh oh!
There was an error while loading. Please reload this page.
As suggested in the last sync meeting, we should understand why some of the benchmarks regressed and progressed. There are possible outcomes for each:
I think as a first pass, we should just try to classify along these lines, and then fix CPython (where possible) first, and fix benchmarks with a lower priority.
For the progressions, it may just be a source of WHATSNEW content.
Let's crowdsource this where possible, reporting back to the checklist below.
Using the last weekly as a guide, the statistically significant regressions are below. For longitudinal details, see the plot of benchmark performance over time below.
The most statistically significant progressions are:
The text was updated successfully, but these errors were encountered: