ohansyah/laravelbenchmark

Measure the number of milliseconds it takes for the given callbacks to complete. This code is from the laravel 9.x helper benchmarking (https://laravel.com/docs/9.x/helpers#benchmarking) PR by by Nuno Maduro https://github.com/laravel/framework/pull/44252. Rewrite intend to run it on old php and lar

v0.1.2 2023-12-04 09:56 UTC

This package is auto-updated.

Last update: 2024-12-04 12:03:18 UTC


README

Latest Version Total Downloads License

Introduction

The Laravel Benchmark package provides a simple and convenient way to benchmark certain parts of your Laravel application. This can be useful when you need to measure the performance of specific code snippets or functions.

This package is inspired by the Laravel 9.x helper benchmarking feature, as discussed in Laravel Documentation and contributed by Nuno Maduro. However, this package is specifically designed to be compatible with older PHP versions and Laravel legacy projects.

Installation

You can install the package via Composer:

composer require ohansyah/laravelbenchmark

Usage

<?php
 
use App\Models\User;
use Ohansyah\LaravelBenchmark\Benchmark;
 
Benchmark::dd(
    function () { range(1, 1000000); }
);
// 11.415ms


Benchmark::dd([
    function () { range(1, 1000000); },
    function () { User::count(); }
]);

/*
array:2 [
    0 => "10.259ms"
    1 => "111.418ms"
]
*/

By default, the given callbacks will be executed once (one iteration), and their duration will be displayed in the browser / console.

To invoke a callback more than once, you may specify the number of iterations that the callback should be invoked as the second argument to the method. When executing a callback more than once, the Benchmark class will return the average amount of milliseconds it took to execute the callback across all iterations

Benchmark::dd(
    function () { range(1, 1000000); }, 5
);
// 10.041ms

License

The Laravel Benchmark package is open-sourced software licensed under the MIT License.