-
-
Notifications
You must be signed in to change notification settings - Fork 18k
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
Benchmarks grant #45049
Comments
Thanks for leading this effort @datapythonista! Cc'ing a few more folks from NumPy/SciPy/scikit-image who I know will be interested in this topic: @mattip, @stefanv, @mdhaber. |
Maybe I do not remember correctly, but it seemed to me asv is a wrapper around the pyperf package for benchmarking. I do like the idea of separating the benchmark runner from the GUI data presentation. Another presentation framework is codespeed, which is used by speed.python.org and speed.pypy.org. I could not find a way to get an overview on conbench (like asv and codespeed provide). I like the way the overview easily lets one see what has changed over time across all the benchmarks. There is a lot to discuss around benchmarking itself: microbenchmarking vs. application benchmarking, stability, what to measure, how much can be done on CI hosted machines vs. private runners. |
This sounds great. If you decide to fork In case you are interested in suggestions that would help maintainers of other projects, I'll include thoughts from my experience with ASV below.
Please let me know if either of these should be filed as issues at https://github.com/airspeed-velocity/asv.
- I haven't checked recently, but in the past I've been unable to use conda-installed ASV on my Windows machine (see specific error [here](https://github.com/scipy/scipy/pull/12732#issuecomment-674595399)). The only way I've been able to get ASV to work in my conda environment on Windows is to install it with pip. Not good practice, I know, but that's what works.
- Sometimes the author of a benchmark wants to time code execution _and_ track something about that code execution without executing that code twice. It sounds like there is not a simple way to do this (see [here](https://github.com/scipy/scipy/pull/10762#issuecomment-567322968)).
If you decide to fork, please consider changing the following behaviors.
The rest of these may be due to user error. Nonetheless, they might indicate that there is something to be improved.
|
Have you folks looked into combining asv with pytest-benchmark? Looks like there have been proposals on both sides ionelmc/pytest-benchmark#208, airspeed-velocity/asv#567 but nothing conclusive. Both projects overlap a lot since both have
See also asvdb, explained in this comment:
|
Hello all, it's great to hear that pandas gets improvements regarding benchmarks. I see that you currently use asv which is a great tool. I just want to leave a link to blog post I read about consistent benchmarking in CI systems. The author uses Cachegrind to count executed CPU instruction and other metrics to calculate a value which is correlated to the actual execution time. Its the same tool sqlite uses for its benchmarks. The blog post sadly doesn't look into concurrency. Best regards PS: |
Thanks @JulianWgs for sharing those. Very interesting. Not in scope for the current grant, but very useful for the future. |
This issue is to provide information, and allow discussion, on the NumFOCUS small development grant to improve benchmarks for pandas (and possibly other projects of the ecosystem). The content of this issue is work in progress, and will be updated as needed.
List of some of the tasks identified to improve asv itself:
six
dependency)Work on the pandas benchmarks:
grep
to see if the build has failed). We can also check if the logs can be improvedWork on infrastructure:
List of some other projects using asv:
Feedback very welcome
CC: @dorothykiz1 @LucyJimenez
CC: @pandas-dev/pandas-core @rgommers
The text was updated successfully, but these errors were encountered: