Closed 2bndy5 closed 1 month ago
Locally I invoke the same commands (using the same exact machine dual-booted):
In the CI workflow (which uses ubuntu-latest), it takes around 165 seconds to run!
At least the runtime is consistent between pure-python and pure-rust. It does not seem to matter if I use clang v18 or v14.
A new performance regression testing workflow has been added to the cpp-linter
project through the introduction of the perf-test.yml
file in the GitHub Actions workflows. This workflow includes three jobs: building the project for current and previous commits, benchmarking performance differences, and reporting when no source changes occur. Additionally, a new script named perf_annotate.py
has been created to analyze benchmark results from a JSON file, providing insights into performance changes and potential regressions.
File Path | Change Summary |
---|---|
.github/workflows/perf-test.yml | Introduced a new workflow for performance regression testing with jobs for building, benchmarking, and reporting. |
.github/workflows/perf_annotate.py | Added a script to analyze performance benchmarks from a JSON file, calculating differences and outputting results. |
π° In the meadow, where benchmarks play,
A new workflow hops in, brightening the day.
With builds and tests, it dances around,
Reporting changes, where performance is found.
So letβs cheer for the code, both swift and spry,
As we measure and analyze, oh me, oh my! πΌ
I give up for now. I may play with this later when I experiment with improving the async performance in rust.
Compares two release builds of cpp-linter binary and pure python package:
Caching is enabled to reduce CI runtime.
Results are output to the CI workflow's job summary. This CI does not (currently) fail when a regression is detected.
Summary by CodeRabbit
Summary by CodeRabbit
New Features
cpp-linter
.Bug Fixes