PHP code example of riod94 / profiler-benchmark

1. Go to this page and download the library: Download riod94/profiler-benchmark library. Choose the download type require.

2. Extract the ZIP file and open the index.php.

3. Add this code to the index.php.
    
        
<?php
require_once('vendor/autoload.php');

/* Start to develop here. Best regards https://php-download.com/ */

    

riod94 / profiler-benchmark example snippets


use Riod94\ProfilerBenchmark\ProfilerBenchmark;

// Disable ProfilerBenchmark if your code running in production
ProfilerBenchmark::enabled(env('APP_ENV') !== 'production');

// Start benchmarking
ProfilerBenchmark::start('initialize');

// Benchmark steps
// Your Code Here
ProfilerBenchmark::checkpoint('Get start product list');

// Your Code Here
ProfilerBenchmark::checkpoint('Parse product list');
// Your Code Here

// Get benchmark results
$benchmarkData = ProfilerBenchmark::getBenchmark('Finish');

// Display benchmark results
var_dump($benchmarkData);

// Example of $benchmarkData result
array:6 [
  "total_time" => 0.02
  "total_memory" => "24.02 MB"
  "average_memory" => "15.01 MB"
  "min_memory" => "8 MB"
  "max_memory" => "24.02 MB"
  "steps" => array:4 [
    0 => array:3 [
      "label" => "initialize"
      "time" => 0.0
      "memory" => "8 MB"
    ]
    1 => array:3 [
      "label" => "Get start product list"
      "time" => 0.01
      "memory" => "12.02 MB"
    ]
    2 => array:3 [
      "label" => "Parse product list"
      "time" => 0.01
      "memory" => "16.02 MB"
    ]
    3 => array:3 [
      "label" => "Finish"
      "time" => 0.02
      "memory" => "24.02 MB"
    ]
  ]
]

// Set show function, show return and show arguments
ProfilerBenchmark::setShowFunction(true);
ProfilerBenchmark::setShowReturn(false);
ProfilerBenchmark::setShowArgs(false);

// Profile and benchmark a function
$profileData = ProfilerBenchmark::functionBenchmark(function() {
    // Code of the function to profile and benchmark
}, 9999, $args);

// Display benchmark results and profile data
var_dump($profileData);

// Example of $profileData result
array:8 [
  "iterations" => 9999
  "total_time" => 1.08
  "average_time" => 0.0
  "min_time" => 0.0
  "max_time" => 0.0
  "function" => Closure()^ {#451
    class: "Riod94\ProfilerBenchmark\Tests\ProfilerBenchmarkTest"
    this: Riod94\ProfilerBenchmark\Tests\ProfilerBenchmarkTest {#314 …}
  }
  "args" => null
  "return" => null
]

// OR you can benchmark a function of a class with arguments
$profileData1 = ProfilerBenchmark::functionBenchmark([BankAccount::class, 'getBalance'], 100, $args);

// Display benchmark results and profile data
var_dump($profileData1);

// Example of $profileData1 result
array:8 [
  "iterations" => 100
  "total_time" => 1.00
  "average_time" => 0.0
  "min_time" => 0.0
  "max_time" => 0.0
  "function" => array:2 [
    0 => "BankAccount"
    1 => "getBalance"
  ]
  "args" => null
  "return" => null
]