Skip to content

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