⏰ Benchmarks

PyLops tracks the performance of all its operators with airspeed velocity (asv). For every operator, the suite measures the wall time and the peak memory of the forward (matvec) and adjoint (rmatvec) passes.

The benchmark suite lives in a dedicated repository, PyLops/pylops-asv. A GitHub Action in that repository benchmarks the heads of the master and dev branches every night (as well as the latest release), and the resulting website is published at https://pylops.github.io/pylops-asv/. Older releases can be benchmarked retroactively by triggering the same workflow manually.

When adding a new operator to PyLops, a companion pull request adding its benchmark to pylops-asv is expected (see the 🖌️ Implementing new operators checklist). The README of pylops-asv explains how to write a benchmark, validate the suite and run it locally against a local checkout of PyLops.