Skip to content
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

Use Codspeed for continous benchmarking #6896

Merged
merged 1 commit into from
Aug 26, 2023
Merged

Use Codspeed for continous benchmarking #6896

merged 1 commit into from
Aug 26, 2023

Conversation

MichaReiser
Copy link
Member

@MichaReiser MichaReiser commented Aug 26, 2023

Summary

This PR replaces our custom benchmarking CI step with CodSpeed.

CodSpeed requires us to use their criterion API wrapper. However, only using their wrapper has the downside that running the benchmarks locally becomes impossible (because it is unsupported). I worked around this by adding a feature flag to our benchmark crate that controls whether we use criterion's API directly or codespeed's wrapper.

Test Plan

CI run Running the benchmarks is significantly faster. I hope that build time will improve with a hot cache.

The data shows up in the dashboard

image

@MichaReiser
Copy link
Member Author

Current dependencies on/for this PR:

This comment was auto-generated by Graphite.

@MichaReiser MichaReiser force-pushed the codspeed branch 4 times, most recently from 974cea5 to e3e4554 Compare August 26, 2023 13:43
@codspeed-hq
Copy link

codspeed-hq bot commented Aug 26, 2023

CodSpeed Performance Report

Congrats! CodSpeed is installed 🎉

🆕 16 new benchmarks were detected.

You will start to see performance impacts in the reports once the benchmarks are run from your default branch.

Detected benchmarks

  • formatter[numpy/globals.py] (1.4 ms)
  • linter/default-rules[numpy/globals.py] (2.2 ms)
  • formatter[large/dataset.py] (72.6 ms)
  • formatter[pydantic/types.py] (26.3 ms)
  • linter/default-rules[pydantic/types.py] (38.8 ms)
  • linter/default-rules[numpy/ctypeslib.py] (18.7 ms)
  • linter/default-rules[large/dataset.py] (94.1 ms)
  • linter/all-rules[numpy/ctypeslib.py] (34.3 ms)
  • parser[numpy/ctypeslib.py] (12.5 ms)
  • parser[pydantic/types.py] (26.8 ms)
  • parser[large/dataset.py] (68.8 ms)
  • parser[numpy/globals.py] (1.4 ms)
  • linter/all-rules[pydantic/types.py] (71.7 ms)
  • formatter[numpy/ctypeslib.py] (13.9 ms)
  • linter/all-rules[large/dataset.py] (156.2 ms)
  • linter/all-rules[numpy/globals.py] (4 ms)

@github-actions
Copy link
Contributor

PR Check Results

Ecosystem

✅ ecosystem check detected no changes.

@MichaReiser MichaReiser marked this pull request as ready for review August 26, 2023 14:02
@MichaReiser MichaReiser added the internal An internal refactor or improvement label Aug 26, 2023
@MichaReiser
Copy link
Member Author

MichaReiser commented Aug 26, 2023

@Boshen you might enjoy this. Or you can wait and check in with me to ask about our experience with it.

Copy link
Member

@charliermarsh charliermarsh left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks great. Excited to try it :)

@MichaReiser MichaReiser merged commit ed1b412 into main Aug 26, 2023
31 checks passed
@MichaReiser MichaReiser deleted the codspeed branch August 26, 2023 14:34
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
internal An internal refactor or improvement
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants