andgoldschmidt / derivative

Optimal numerical differentiation of noisy time series data in python.
https://derivative.readthedocs.io/en/latest/
Other
56 stars 8 forks source link

CI: Add Benchmarking #46

Closed Jacob-Stevens-Haas closed 3 months ago

Jacob-Stevens-Haas commented 3 months ago

Hey Andy, I've added some logging to an experiment and found that some derivative methods can be slow. This isn't a surprise, but the enterprise solution is to add benchmarking to CI so that we can start quantifying improvements. This uses Airspeed Velocity (asv), the same benchmarking package as pandas.

Like most PRs that deal with CI, this one may have a variety of commits to try to get it working. I don't know yet how to feed asv previous benchmark results so that it can know performance improvements/regressions.

Jacob-Stevens-Haas commented 3 months ago

Ok, it looks like the basic benchmarking is working. You can see that the commit with an intentional performance regression failed CI.

Two things I'd like to add:

I'd like to just leave this with a test for finite difference as a template later expansion and improvement. I think the PR is ready to go now