Integrate Benchmarking into CI with Performance Analysis#418
Integrate Benchmarking into CI with Performance Analysis#418ev1lm0nk3y wants to merge 4 commits into
Conversation
|
Feel free to reject this, but I thought these changes would be useful |
Split CI into separate lint, test, and benchmark jobs Consolidate CI: Combine tests/benchmarks and move mandoc linting to Lint job limit fetch depth for linting
84ae6aa to
c91d14b
Compare
|
Doesn't this assume that all GitHub Actions runners always have the same performance characteristics? Would the benchmark numbers here be stable or flaky, and if flaky, by how much? Since these are random cloud machines, how would one protect from flakiness from things like:
|
|
Responses in-line In short, yes these are valid concerns and I have some suggestions I would like your opinion on.
My inclination is to use deterministic metrics instead of sample averaging and relative benchmarking because these are calculated by the Go runtime based on code execution and are virtually immune to VM specs and noisy neighbors. To my knowledge What do you think? |
Overview
This PR overhauls our Continuous Integration pipeline by consolidating workflows, migrating to modern GitHub Actions for linting, and introducing automated performance tracking with Pull Request feedback. The goal is to catch both logic bugs and performance regressions in a single, efficient pipeline.
Key Changes
The workflow is now split into two focused jobs to reduce redundant cycles and improve security:
How to Use Locally
Run the new benchmark script directly:
1 ./benchmark.sh
Or use the new flag in the test suite:
1 ./test.sh --bench
Verification Results