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:
- Runs the profiling tests on the updated code
- Collects performance metrics (function calls, durations, etc.)
- Stores the results in the
profiling_databranch for long-term storage - The dashboard above fetches this historical data to show performance trends
PR Profiling (Open PRs)
For open pull requests, the PR profiling workflow:
- Runs profiling tests on the PR branch
- Uploads artifacts with the profiling results
- 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 changestests/profiling/**- Profiling test changespyproject.toml- Project configurationpixi.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