Docs

Introduction

What BenchKit is and why we built it.

BenchKit is a free and open source Laravel application that shows you how performance changes across hosts, hardware, and PHP configurations. You run it on the server you want to measure, and it reports what that machine does with a Laravel workload. Any run can be shared. Other people can then compare their setup against yours, and you can find results from a setup close to your own.

BenchKit is a standalone application rather than a package you add to an existing Laravel app. You point it at the infrastructure you want to measure, and it never touches your codebase.

Why we built it

We are deeply interested in learning more about Laravel performance and PHP tuning, and we wanted a tool that helps us learn and standardize tests. There has also been a lot of talk about FrankenPHP being much faster than FPM-NGINX, so we were curious to test it.

Finding a quality host is the other challenge. You can visit a website and see a good price, but you don't really know how it performs until you run a workload against it.

We created BenchKit to standardize that learning process. Benchmarking honestly is difficult, which is a big reason we open sourced it. We want to build a community of people who are interested in PHP performance tuning with Laravel, so we made a community gallery of results where people share their runs and compare notes.

How you run it

BenchKit is container-first. That is what makes it easy to switch between FrankenPHP, FPM-NGINX, and FPM-Apache and compare them directly, since the application is identical in each one. Not every host takes containers, so you can also clone the repository and run it from source.

Quick start

Run BenchKit on your server with one Docker command.

Running from source

Deploy to Laravel Cloud, Railway, or any host that takes a repository.