finds.dev← search

// the find

wesm/vbench

★ 244 · Python · MIT · updated Oct 2017

vbench: A tool for benchmarking your code through time, for showing performance improvement or regressions

vbench runs a suite of benchmarks against every commit in your repo's history, storing results in a local DB (sqlite via the db.py module) so you can graph performance over time and catch regressions between revisions. It was built by Wes McKinney for pandas' own vb_suite, and that's really its main pedigree — it's a purpose-built tool that got open-sourced rather than a general-purpose benchmarking framework designed for adoption.

Git-integrated by design (git.py) — it checks out historical commits and re-runs benchmarks against them, which is the actual hard part of 'has this gotten slower since v0.8' questions that ad-hoc timeit scripts don't answer. The pandas vb_suite is a real, large-scale usage example, so you can see exactly how a project with hundreds of benchmarks structured this in production. Small, single-purpose codebase (a dozen or so files) that's easy to read end to end in an afternoon.

Dead since 2017 — no Python 3 guarantees, no CI badge, and pandas itself moved off vbench to ASV (airspeed velocity) years ago, which is itself a signal about this project's staying power. README is essentially just links into the pandas repo rather than actual setup/usage docs for vbench itself, so you're reverse-engineering the API from pandas' vb_suite rather than following instructions. No packaging on PyPI as far as the repo shows, and the reliance on git submodules (.gitmodules) for the benchmark checkout mechanism is a legacy pattern that's easy to get wrong today.

View on GitHub →

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →