• Reading time ~ 1 min
  • 08.10.2022

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.

Comments

No comments yet
Yurij Finiv

Yurij Finiv

Full stack

ABOUT

Professional Fullstack Developer with extensive experience in website and desktop application development. Proficient in a wide range of tools and technologies, including Bootstrap, Tailwind, HTML5, CSS3, PUG, JavaScript, Alpine.js, jQuery, PHP, MODX, and Node.js. Skilled in website development using Symfony, MODX, and Laravel. Experience: Contributed to the development and translation of MODX3 i...

About author CrazyBoy49z
WORK EXPERIENCE
Contact
Ukraine, Lutsk
+380979856297