News

Quickly test the performance of your Laravel app with the Benchmarking helper

Published
Quickly test the performance of your Laravel app with the Benchmarking helper image

With the release of Laravel 9.32 yesterday, a benchmarking helper was introduced, which is useful to quickly test the performance of certain parts of your application.

It works by passing a Closure that runs some code you want to benchmark and returns the time it took in ms:

use Illuminate\Support\Benchmark;
 
Benchmark::measure(fn() => Post::find(1));
// Returns time in ms.
// i.e., 0.1ms

Additionally, you can pass an array of Closures and optionally configure how many iterations the closures should run:

// Run each callback three times
Benchmark::measure([
fn() => Post::find(1),
fn() => Post::find(5),
], 3);
 
// [0.02, 0.03]
 
// Use keys
Benchmark::measure([
'Post 1' => fn() => Post::find(1),
'Post 5' => fn() => Post::find(5),
], 3);
// ['Post 1' => 0.02, 'Post 5' => 0.03]

The Benchmark class has a dd() method which runs the above measurements wrapped with a dd() call, which will output the results to the console or browser and exit.

Benchmark::dd([
'Post 1' => fn() => Post::find(1),
'Post 5' => fn() => Post::find(5),
]);

Couple this update with the dd() file/line output, and you have some useful new debugging tools!

To learn more, check out the benchmarking section now available within the helpers documentation.

Paul Redmond photo

Staff writer at Laravel News. Full stack web developer and author.

Filed in

Sponsored

laravelcloud logo
Laravel Cloud

Easily create and manage your servers and deploy your Laravel applications in seconds.

Visit Laravel Cloud

The latest

View all →
CPX: The Composer Package Executor for PHP image

CPX: The Composer Package Executor for PHP

Read article
Laravel AI SDK Adds Human-in-the-Loop Tool Approval image

Laravel AI SDK Adds Human-in-the-Loop Tool Approval

Read article
Pest 5 Released With Test Impact Analysis, Agent Verification, and Evals image

Pest 5 Released With Test Impact Analysis, Agent Verification, and Evals

Read article
Queue-SQL: Run Mass Deletes and Updates Across Parallel Queue Jobs image

Queue-SQL: Run Mass Deletes and Updates Across Parallel Queue Jobs

Read article
Blade Formatting in Laravel Pint image

Blade Formatting in Laravel Pint

Read article
Inertia DevTools Is Now on the Chrome Web Store image

Inertia DevTools Is Now on the Chrome Web Store

Read article