phpbench/phpbench

PHP Benchmarking Framework

Fund package maintenance!
dantleech

Installs: 6 049 606

Dependents: 510

Suggesters: 10

Security: 0

Stars: 1 867

Watchers: 32

Forks: 123

Open Issues: 29

1.3.1 2024-06-30 11:04 UTC

This package is auto-updated.

Last update: 2024-07-09 20:32:54 UTC


README

SWUbanner

StandWithUkraine CI Documentation Latest Stable Version Total Downloads License

PHPBench is a benchmark runner for PHP analogous to PHPUnit but for performance rather than correctness.

Features include:

  • Revolutions: Repeat your code many times to determine average execution time.
  • Iterations: Sample your revolutions many times and review aggregated statistical data.
  • Process Isolation: Each iteration is executed in a separate process.
  • Reporting: Customizable reports and various output formats (e.g. console, CSV, Markdown, HTML).
  • Report storage and comparison: Store benchmarks locally to be used as a baseline reference, or to reference them later.
  • Memory Usage: Keep an eye on the amount of memory used by benchmarking subjects.
  • Assertions: Assert that code is performing within acceptable limits, or that it has not regressed from a previously recorded baseline.

See the documentation to find out more.

Installation

composer require phpbench/phpbench --dev

See the installation instructions for more options.

Documentation

Documentation is hosted on readthedocs.

Community

  • Follow @phpbench on Mastodon for the latest news.
  • Join the #phpbench channel on the Slack Symfony Devs channel.

Screenshots

Running benchmarks and comparing against a baseline:

phpbench

Aggregated report:

image

Blinken logger:

phpbench-blinken

HTML Bar Chart:

Untitled

Console Bar Chart:

Untitled

Contributing

PHPBench is an open source project. If you find a problem or want to discuss new features or improvements please create an issue, and/or if possible create a pull request.