-
Notifications
You must be signed in to change notification settings - Fork 14
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
Tooling for automated stats gathering #115
Comments
I think this is a great idea. Unlike timing benchmarks, this is a lot more deterministic (though I suspect not 100% deterministic). I like the idea of stats helping to be a bit of a "tie breaker" when maybe the raw timings are too close to call (only for PR's that are obviously trying to improve the specializer, of course).
Yeah -- I was just working on this part this morning: psf/pyperf#140 |
This adds support for comparing pystats collected from two different builds. - The `--json-output` can be used to load in a set of raw stats and output a JSON file. - Two of these JSON files can be provided on the next run, and then comparative results between the two are output. The refactor required is basically to: - Separate out the building of table contents from emitting the table - Call these new functions from functions designed for either single results or comparative results Part of the work for: faster-cpython/tools#115
This, in particular, is to get the new pystats support in pyperf as part of: faster-cpython/tools#115
This, in particular, is to get the new pystats support in pyperf as part of: faster-cpython/tools#115
Adding this automation to PRs will require committing more automation to upstream cpython, where there is (understandable) wariness to adding more complexity. As a half-way measure, it turned out to be really easy to add support for running on an arbitrary fork and branch to the automation in the ideas repo: I think that might be good enough for now, and it at least addresses getting the fiddly bits of collecting the stats correct. The main downsides are it's a little less discoverable, and only someone with write permissions to the ideas repo can kick it off. It is possible to give individuals that permission, though. |
Closing as DONE. Diffing isn't automated, but is possible with two sets of |
We have a wonderful mechanism (
--with-pystats
) for quantifying the success of many of our optimizations. However, there is currently quite a bit of friction involved in collecting that data. I think that the situation can be improved without too much difficulty.My current wishlist regarding pyperformance runs built
--with-pystats
:--fast
option.I also know that @markshannon has also expressed a desire to have pyperformance (or maybe pyperf?) turn stats gathering on and off using 3.12's new
sys
utilities before and after running each benchmark, so that we're gathering just stats on the benchmarks themselves, and ignoring the external benchmarking machinery.CC @mdboom
Individual tasks to get there:
The text was updated successfully, but these errors were encountered: