-
Notifications
You must be signed in to change notification settings - Fork 0
Description
Overview
FluxBench 0.1.x built the engine: crash isolation, bootstrap statistics, algebraic verification, baseline comparison. 0.2.0 makes that engine legible — to humans scanning a terminal, reviewing a PR, or opening a dashboard.
The theme is "Visual Intelligence": every chart, color-coded terminal line, and polished summary serves one goal — making performance regressions impossible to miss.
New visualization capabilities are feature-gated. The default build (cargo add fluxbench) stays lean. Users opt in to what they need.
Feature Flags
[dependencies]
fluxbench = "0.2" # Core — includes progress lines, GitHub summary polish
fluxbench = { version = "0.2", features = ["charts"] } # + plotr for PNG/SVG/HTML charts
fluxbench = { version = "0.2", features = ["color"] } # + colored terminal output
fluxbench = { version = "0.2", features = ["full"] } # Everything| Feature | Pulls in | What it enables |
|---|---|---|
charts |
plotr |
PNG/SVG/HTML chart generation, HTML dashboard |
color |
TBD (minimal) | Colored terminal output (green/red/yellow) |
full |
All of the above | Everything enabled |
Without any feature flags, 0.2.0 ships: progress lines, GitHub summary enhancements, and --format github-action output. Zero new dependencies.
charts — Chart Generation (plotr)
Feature flag: charts
Standalone chart rendering via the plotr crate. The model follows matplotlib/pyplot: generate image files that work anywhere, not just inside HTML.
Output Formats
--chart-format svg— Vector graphics for GitHub summary markdown, docs, web embedding--chart-format png— Raster images for CI artifacts, Slack, email reports--chart-format html— Interactive charts with hover tooltips, zoom, pan--chart-dir target/fluxbench/charts/— Configurable output directory- Charts also embedded inline when
--output htmlis used
Chart Types
- Distribution plots — Histogram + violin overlay per benchmark (sample distribution, outlier bands, bootstrap CI shading)
- Comparison charts — Grouped bar charts for comparison groups with error bars from bootstrap CIs
- Series plots — Line charts for scaling studies (
args = [64, 128, 256, ...]) with parameter on x-axis - Baseline delta view — Side-by-side distribution overlay (old vs new) with regression probability
- Scatter timeline — Metric drift over time across multiple runs (commit axis)
HTML Dashboard
When --output html (requires charts), charts compose into a full dashboard:
- Single-file HTML (embedded CSS + SVG, zero external dependencies)
- Synthetic metric KPI cards, verification status strip
- Dark mode (
prefers-color-scheme+ toggle) - Responsive layout
GitHub Actions Usage
- run: cargo fluxbench --chart-format svg
- run: echo '' >> $GITHUB_STEP_SUMMARYBlocked on: plotr crate readiness
color — Colored Terminal Output
Feature flag: color
Scannable at a glance:
- Green — improvements, passing verifications
- Red — regressions, failing verifications
- Yellow — within-noise, warnings
- Bold — benchmark names, section headers
- Dim — metadata (commit, timestamp)
- Respects
$NO_COLOR,$FORCE_COLOR,isatty()detection - Graceful fallback to plain text when unsupported or feature disabled
Without the color feature, output is identical to 0.1.x (plain text).
Progress Lines (no feature flag)
Simple, zero-dependency progress output during execution:
[3/12] matmul_1024...— shows current benchmark and progress12 benchmarks completed in 4m 32s— summary on completion- Active worker count when
--jobs N > 1
No progress bars, no ETA, no indicatif. Just print lines.
GitHub Summary Enhancements (no feature flag)
Zero-dependency improvements to the existing markdown output:
- Collapsible sections —
<details>for per-benchmark distribution stats to keep summary scannable - Verification badge —
5/5 passedor3/5 passed, 2 FAILEDat the top - Sparkline trends — Inline ASCII sparkline per benchmark (last N runs, if historical baselines available)
--format github-action (no feature flag, shipped in 0.1.3)
Compatible with github-action-benchmark for historical performance tracking on GitHub Pages:
cargo fluxbench --format github-action -o output.json- uses: benchmark-action/github-action-benchmark@v1
with:
tool: 'customSmallerIsBetter'
output-file-path: output.jsonWorkstreams
| Area | Feature flag | Blocked on | Scope |
|---|---|---|---|
| Chart generation (PNG/SVG/HTML) | charts |
plotr | fluxbench-report |
| Colored terminal output | color |
Nothing | fluxbench-cli |
| Progress lines | None (default) | Nothing | fluxbench-cli |
| GitHub summary polish | None (default) | Nothing | fluxbench-report |
| github-action-benchmark format | None (default) | Done (0.1.3) | fluxbench-report |