Benchmark performance tracking for shipping teams

See regressions in your benchmarks before they become release problems.

Perfall gives engineering teams one standalone CLI for benchmark uploads: run pytest --benchmark-json, upload with perfall ingest pytest-benchmark, compare trends over time, and spot drift before release.

  • Project-based access
  • CLI ingestion for 6 benchmark ecosystems
  • Trend charts by metric

Performance changes hide in release noise. Perfall makes them visible.

Track trends, not snapshots

Store benchmark results over time so teams can see whether performance is improving, holding steady, or slipping.

Organize data by project

Keep benchmark history tied to the product work it belongs to, with access scoped to the right team members.

Inspect the signal quickly

Use chart views and metric history to understand what changed without rebuilding custom dashboards.

Supported languages

One benchmark dashboard for the stacks teams already ship

Perfall ships one standalone Python client package, perfall-cli, with built-in adapters so teams can keep one trend history even when services are written in different languages.

Python

Use pytest-benchmark JSON output.

Go

Upload go test -bench -benchmem -json results.

Java

Send JMH JSON results from benchmark runs.

Rust

Ingest cargo criterion --message-format=json output.

JavaScript / TypeScript

Track Vitest benchmark JSON artifacts.

C++

Use Google Benchmark JSON exports.

From benchmark run to visible trend in three steps

1

Create a project

Set up a project workspace for the application or service you want to track.

2

Send benchmark results

Install the standalone perfall-cli package from PyPI once, then pick the adapter that matches your benchmark output. Need the full guide? Open the ingestion docs.

Python

Install CLI pip install perfall-cli
Generate pytest --benchmark-json benchmark.json
Upload perfall ingest pytest-benchmark --file benchmark.json --api-key "$PERFALL_API_KEY"

Go

Install CLI pip install perfall-cli
Generate go test -bench . -benchmem -json ./... > go-benchmark.jsonl
Upload perfall ingest go-test --file go-benchmark.jsonl --api-key "$PERFALL_API_KEY"

Java

Install CLI pip install perfall-cli
Generate java -jar benchmarks.jar -rf json -rff jmh-result.json
Upload perfall ingest jmh --file jmh-result.json --api-key "$PERFALL_API_KEY"

Rust

Install CLI pip install perfall-cli
Generate cargo criterion --message-format=json > cargo-criterion.jsonl
Upload perfall ingest criterion --file cargo-criterion.jsonl --api-key "$PERFALL_API_KEY"

JavaScript / TypeScript

Install CLI pip install perfall-cli
Generate npx vitest bench --outputJson vitest-benchmark.json
Upload perfall ingest vitest --file vitest-benchmark.json --api-key "$PERFALL_API_KEY"

C++

Install CLI pip install perfall-cli
Generate ./benchmarks --benchmark_out=google-benchmark.json --benchmark_out_format=json
Upload perfall ingest google-benchmark --file google-benchmark.json --api-key "$PERFALL_API_KEY"

3

Review trend lines

Open the dashboard to compare metrics, watch drift across releases, and catch regressions earlier.

Built for engineering teams that need signal without setup overhead

Perfall is designed for teams that already run benchmarks and want an easier way to keep the history useful. Instead of scattered logs or one-off scripts, teams get a focused place to review benchmark behavior over time.

  • Multiple metrics per project dashboard
  • Time-range views for short, medium, and long-term comparison
  • Shared chart navigation for easier exploration

Account-based pricing with unlimited projects

Every tier includes unlimited projects. Pricing scales with account-wide benchmark samples/day and invited collaborators per project. Quota resets at 00:00 UTC.

Free

$0 / month

  • 500 benchmark samples/day per account
  • 5 invited collaborators per project
  • Unlimited projects
  • Dashboard and pytest-benchmark CLI ingestion
Start free

Large

$200 / month

  • 25,000 benchmark samples/day per account
  • 50 invited collaborators per project
  • Unlimited projects
  • Capacity for high-volume benchmark programs
Talk to us

Start tracking benchmark performance with less manual work.

Create an account, set up your first project, and make benchmark regressions easier to catch before release day.