[ENH]: Addition of initial ASV benchmarking suite with synthetic data#503
Open
KaranSinghDev wants to merge 1 commit intodswah:mainfrom
Open
[ENH]: Addition of initial ASV benchmarking suite with synthetic data#503KaranSinghDev wants to merge 1 commit intodswah:mainfrom
KaranSinghDev wants to merge 1 commit intodswah:mainfrom
Conversation
780ec18 to
6ef3213
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes #471
This PR implements a formal benchmarking infrastructure using Airspeed Velocity (asv). This fulfills the long-standing request mentioned in #99 to provide a mechanism for tracking performance history and preventing speed regressions.
Implementation
asv.conf.jsonconfigured for isolated virtualenv builds and directpipinstallation for cross-platform stability.numpyto avoid dependencies onpandasor external CSV files and ensures we measure algorithmic throughput rather than disk I/O speed.OMP_NUM_THREADS=1andMKL_NUM_THREADS=1to ensure timing remains consistent across different hardware configurations.LinearGAMFit: Measures fitting, prediction, and gridsearch latency.PoissonGAMFit: Benchmarks the performance of the iterative PIRLS loop using a stable mathematical signal to ensure rapid convergence and prevent timeouts.Verification
I have thoroughly verified in an isolated environment. All benchmarks execute in under 300ms, ensuring the suite is fast enough for CI/CD integration.
Sample Local Output:
The tests have been done on Python 3.10/3/13. Linux (Ubuntu), with CPU: i7 12700h.