-
-
Notifications
You must be signed in to change notification settings - Fork 947
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
[PoC] [WiP Draft] Performance gate prototype #1825
base: master
Are you sure you want to change the base?
Conversation
Codecov ReportAll modified and coverable lines are covered by tests ✅
Additional details and impacted files@@ Coverage Diff @@
## master #1825 +/- ##
=========================================
Coverage 100.00% 100.00%
=========================================
Files 54 54
Lines 5154 5154
Branches 831 831
=========================================
Hits 5154 5154 ☔ View full report in Codecov by Sentry. |
Excited to see this, and to see if it turns out to be useful. I'm going to be setting up something similar for one of my projects, so will share what I come up with if this is still in progress, or maybe steal from you, depending 😀 |
Note that I've found a bug in the cachegrind.py script calculation, so you'll want to pull a new version once I've updated it (tomorrow hopefully). |
Heh, thanks for heads up @itamarst ! |
@itamarst Btw, another thing I was really surprised when toying with this approach, was how much "rogue" Python hash seeds can affect performance 🙂 |
Yeah, you really want to set a fixed PYTHONHASHSEED for consistency. The issue was that I was counting L3 hits wrong, if something hit RAM I also counted this as hitting L3 (i.e. L3 hits were too high). I am not sure if this will have much impact on the noisiness though. |
OK, https://github.com/pythonspeed/cachegrind-benchmarking has been updated. |
Thanks @itamarst , I'll check that out! |
@itamarst thanks again for the update. |
I got benchmarks working. Beyond what is in original repository:
Example output: pythonspeed/filprofiler#110 |
This has been rotting for so long due to the lack of my bandwidth, that I'm thinking to wait a couple of weeks more and then migrate this to Ubuntu 22.04 + CPython 3.10, to have the same gauge for a longer time. I'm hoping to circle back on this shortly after we release 3.1. |
This is an early prototype of how implementing the https://github.com/pythonspeed/cachegrind-benchmarking approach could look like for Falcon.
The prototype builds upon this excellent article by @itamarst: https://pythonspeed.com/articles/consistent-benchmarking-in-ci/ (thanks @njsmith for kindly pointing to this idea).
Closes #1450
To do if we want to proceed with this:
tox
environments, requirements etc