Skip to main content

Lightweight CLI tool to detect performance regressions by comparing local benchmark snapshots.

Project description

PerfTrack

PerfTrack is a command-line tool that helps detect performance regressions in open-source projects and CI pipelines. It requires no external services and tracks performance locally.

Designed for Python projects (Django, Pandas, FastAPI, ML libraries), internal tooling, and personal benchmarking workflows

Why PerfTrack?

Performance regressions often go unnoticed because:

  • CI timing is noisy and unreliable for benchmarking
  • Tools like ASV or pytest-benchmark require setup and maintenance
  • There is no simple utility to store a baseline and fail CI when performance drops

PerfTrack stores local performance snapshots and compares them against future runs, both locally and in CI.

What It Measures

  • Wall-clock time
  • CPU time
  • Peak RSS memory usage

Baseline cached locally → regression check in CI.

Installation

pip install perftrack

Quick start

# run a command and record performance
perftrack run "python script.py"

# set the latest run as baseline
perftrack baseline set-latest

# later compare new results with baseline
perftrack compare --fail-on-regression

# Generate Simple HTML report
perftrack report

Replace "python script.py" with whatever you want to benchmark (scripts, test suites, build steps, ML training, etc.)

Directory

Perftrack store results under:

.perftrack/
  baseline.json
  latest.json

CI Regression Example

PerfTrack guarantees that performance regressions are caught before merge. Here is a (pull request) where we intentionally slowed down code to demonstrate PerfTrack in CI.

perftrack

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

perftrack-0.1.1.tar.gz (7.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

perftrack-0.1.1-py3-none-any.whl (8.0 kB view details)

Uploaded Python 3

File details

Details for the file perftrack-0.1.1.tar.gz.

File metadata

  • Download URL: perftrack-0.1.1.tar.gz
  • Upload date:
  • Size: 7.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.7

File hashes

Hashes for perftrack-0.1.1.tar.gz
Algorithm Hash digest
SHA256 1fc919ca99d7d5d32299ee4a872af28a5b1ad0eea1b7ba3aa5367769dd66b3a3
MD5 35588ee77d706b4ef615d5c029508600
BLAKE2b-256 4d04b3d8101c652375ce49d4b26814f7cbdf8847cd6c8eb7cd1b9c7b5de81f25

See more details on using hashes here.

File details

Details for the file perftrack-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: perftrack-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 8.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.7

File hashes

Hashes for perftrack-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 befa459950f84f2f75c434cf09a669d29ba5d3566723e8cb872c5026aa789974
MD5 0af2ff14c8bae9fbca1c8091ab5f59e2
BLAKE2b-256 f2e3671442655e8a3de7de68a1d66e2b4c3841955edfdac7b0dd65730b663c62

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page