lx/gonzalez

此包已废弃,不再维护。未建议替代包。

另一个用于计时PHP代码的微框架

dev-master 2014-12-17 14:51 UTC

This package is auto-updated.

Last update: 2019-08-08 10:27:45 UTC


README

¡Ándale! ¡Ándale! ¡Arriba! ¡Arriba! ¡Epa! ¡Epa! ¡Epa! Yeehaw!

"哎呀,又一个用于计时PHP代码的微框架..." 你可能会说。我差不多可以接受这个。

安装

$  composer require "lx/gonzalez" "dev-master"

使用

设置


<?php

use \Gonzalez\Runner

require_once 'vendor/autoload.php';

$function_to_benchmark = function() {
    // code to benchmark goes here...
};

$runner = new Runner($function_to_benchmark);

基础

$results = $runner->run(1000);

$iterations = count($results);
$overall_time = array_sum($results);

$fastest = min($results);
$slowest = max($results);
$average = $iterations / $overall_time;

校准

为什么?

假设你想测量你喝一杯啤酒有多快。假设你只有一只手臂。你需要做的步骤是

  1. 在闪亮的智能手机上的计时器应用中按下 开始
  2. 把你的智能手机放在桌子上
  3. 拿起玻璃杯
  4. 放下玻璃杯
  5. 拿起你的智能手机
  6. 在闪亮的智能手机上的计时器应用中按下 停止
  7. 打嗝

你想测量的只是动作 #4,而你实际上测量的是动作 #2 到 #7。不太好。

如何?

Gonzalez提供了一个简单的方式来校准你的基准测试:Gonzalez

你想要做的最小校准是PHP进入和离开基准测试函数所需的时间。所以如果你想基准测试一个匿名函数,你会取一个空的匿名函数

$empty_anonymous_function = function () {};
$calibrator = new Runner($empty_anonymous_function);

$result = $calibrator->run(10000);
$calibration_time = min($result);

$runner->setCalibrationTime($calibration_time);

$result = $runner->run(1000);
// ...

一般来说,你的校准函数应该与你要基准测试的函数完全相同,不包括你真正想要基准测试的代码行。

一些徽章

Build Status Test Coverage Code Climate License Badges