lk

Performance Dashboard Artifacts

Benchmarks and visualisations generated by scripts/perf_dashboard.rs are not checked into main. They are produced only inside GitHub Actions and pushed to the dedicated perf_dashboard branch, which also backs the published static dashboard.

How CI produces artifacts

The .github/workflows/perf-dashboard.yml workflow runs on main, scheduled windows, or manual dispatch. It performs the following steps:

  1. Executes cargo bench -p lkr-core --bench scripts_bench -- --noplot.
  2. Runs cargo run -p lkr-core --bin perf_dashboard -- --memory-iters 5 to aggregate P50/P95/P99 latency and peak memory per scenario.
  3. Uploads docs/perf/dashboard as an Actions artifact for the run.
  4. Commits the same directory contents to the perf_dashboard branch using peaceiris/actions-gh-pages, keeping prior history (last 30 snapshots).

The branch can be wired to GitHub Pages or another static host if desired. To inspect artifacts locally, download the workflow artifact from the Actions run instead of expecting files in main.

Manual reruns

If you need to reproduce the dashboard locally:

cargo bench -p lkr-core --bench scripts_bench -- --noplot
cargo run -p lkr-core --bin perf_dashboard -- --memory-iters 5

Remember to discard the generated docs/perf/dashboard directory afterward or stash the changes to avoid polluting the working tree. Only CI pushes to the perf_dashboard branch should persist history.

GitHub Pages setup

The workflow pushes the dashboard to the perf_dashboard branch. To serve it:

  1. Go to Settings → Pages in this repository.
  2. Choose Deploy from a branch as the source.
  3. Select the perf_dashboard branch and the / (root) folder, then save.

GitHub will publish the static site at https://lollipopkit.github.io/lkr/ (replace with your fork’s owner/repo as needed) and automatically refresh it whenever the workflow updates the branch.