green-elephpant/code-bench-laravel

A package to conveniently use CodeBench in your Laravel project

v1.1.0 2025-08-15 16:14 UTC

This package is auto-updated.

Last update: 2025-08-15 16:15:11 UTC


README

Green ElePHPant

Green ElePHPant - CodeBench Laravel

The Green ElePHPant wants to help you to reduce the carbon emissions of your software.

One way of doing so is to optimize the performance. Less CPU, RAM and Storage means reduced energy consumption, fewer carbon emissions, and less hardware to be produced. And, last but not least, the users of your software will benefit from a faster application.

GreenElephpant\CodeBenchLarvel is a tiny package to conveniently include CodeBench into your Laravel project.

Key concept

GreenElephpant\CodeBench is a simple helper to compare the performance of code blocks. This package configures GreenElephpant\CodeBench to directly use Log::debug().

It provides helper functions like codebench_start() and codebench_stop() to measure the time and memory taken by a code block.

Installation

composer require green-elephpant/code-bench-laravel --dev

Note: we use require-dev here, since GreenElephpant\CodeBench should not be used in production code.

Usage

Basic usage

codebench() is a helper function to conveniently call the GreenElephpant\CodeBench\CodeBench class.

You can use it to compare the performance of two callbacks:

codebench([
    function () {
        // The first option we want to test    
        date('D M d Y H:m:s');
    },
    function () {
        // The second option we want to test
        (new DateTime())->format('D M d Y H:m:s');
    }
]);

Please see the CodeBench documentation on more information.

The results will be logged using Laravel's Log::debug() by default. See Set Logger callable for more information.

Measure the performance of a code block

You can use the codebench_start() and codebench_stop() functions to measure the performance of a code block.

codebench_start();

// Your code block here
for ($i = 0; $i < 1000; $i++) {
    expensive_function_call();
}

codebench_stop();

Also here, the results will be logged using Laravel's Log::debug() by default.