Profiling Dashboardยถ

๐Ÿ“Š Profiling Dashboard

Loading profiling history...

How it Worksยถ

Main Branch Profiling (Historical Data)

When a PR is merged to the main branch, the profiling workflow automatically:

  1. Runs the profiling tests on the updated code

  2. Collects performance metrics (function calls, durations, etc.)

  3. Stores the results in the profiling_data branch for long-term storage

  4. The dashboard above fetches this historical data to show performance trends

PR Profiling (Open PRs)

For open pull requests, the PR profiling workflow:

  1. Runs profiling tests on the PR branch

  2. Uploads artifacts with the profiling results

  3. The dashboard can show the status and artifacts for each open PR

Profiling Triggers

The profiling workflows are triggered when changes are made to:

  • src/** - Source code changes

  • tests/profiling/** - Profiling test changes

  • pyproject.toml - Project configuration

  • pixi.lock - Dependency lock file

Data Storageยถ

Profiling data is stored in the profiling_data branch of this repository. This provides:

  • Persistent storage: Data survives across workflow runs

  • Version control: Full history of profiling data changes

  • Easy access: Data can be fetched via GitHubโ€™s raw content API

The history is limited to the last 100 merged commits to prevent unbounded growth.

Interpreting Resultsยถ

Performance Change Indicators:

  • ๐ŸŸข Green: Performance improved by more than 5%

  • โšช White: Performance change within ยฑ5% (stable)

  • ๐Ÿ”ด Red: Performance regressed by more than 5%

Metrics Tracked:

  • Total Duration: Sum of all profiled function durations

  • Total Calls: Number of function calls tracked

  • Per-test breakdown: Detailed timing for each profiling test