moznion/benchmarker

PHP代码的基准运行时间

v1.1.0 2014-09-29 15:07 UTC

This package is not auto-updated.

Last update: 2024-09-24 08:24:49 UTC


README

#BenchMarker Build Status

PHP代码的基准运行时间(受Benchmark.pm启发)

摘要

$benchmarker = new \Moznion\Benchmarker("all");

$code = function () use ($foo) {
    // do something
};

$benchmarker->timeThese(10000, [
    "code A" => function () use ($bar) {
        // do something
    },
    "code B" => $code, // it can also take variable of anonymous function
]);
// Sample of Output:
//    code A: 3.9326 wallclock secs (3sr + 0.2562ys = PU)
//    code B: 6.40877 wallclock secs (6sr + 0.81337ys = PU)

$benchmarker->cmpThese(10000, [
    "code A" => function () use ($bar) {
        // do something
    },
    "code B" => $code, // it can also take variable of anonymous function
]);
// Sample of Output:
//               Rate  code A  code B
//    code A  22571/s      --    -49%
//    code B  44656/s     98%      --

描述

用于基准测试PHP代码运行时间的库。

本库受Perl的Benchmark启发。

方法

new($style_name=null, $format=null, $enable_cache=null)

创建BenchMarker的实例。

  • $style_name (String)

指定样式名称。默认值是 auto

请参阅样式

  • $format (String)

指定格式化基准结果值的格式。它支持与sprintf()兼容的格式。

默认值是 '5.2f'。

  • $enable_cache (Boolean)

指定缓存nop函数的运行时间(nop函数的运行时间用于内部精度)。如果您启用缓存,基准测试的处理速度将更快。

默认值是 'false'。

timeIt($count, $code)

运行一段代码并查看其运行时间。

此方法返回result-time的实例

  • $count

$count是循环运行的次数。此参数必须是正整数。

  • $code

$code是要运行的代码。此参数必须是可调用的变量。

countIt($time, $code)

查看在给定时间内一段代码运行了多少次。

此方法返回result-time的实例

  • $time

$time是循环运行的最短时间。

  • $code

$code是要运行的代码。此参数必须是可调用的变量。

timeThis($count, $code, $title=null)

运行一段代码多次并打印基准结果。

此方法返回result-time的实例

  • $count

$count是循环运行的次数。此参数必须是正整数。

此参数可以是零或负数。这意味着要运行的CPU秒数的最小值。零表示默认的3秒。

  • $code

$code是要运行的代码。此参数必须是可调用的变量。

  • $title

结果的标题。默认为 "timethis $count"。

timeThese($count, $codes)

多次运行多个代码块并打印基准结果。

此方法返回每个代码的result-time实例数组。

  • $count

$count是循环运行的次数。此参数必须是正整数。

此参数可以是零或负数。这意味着要运行的CPU秒数的最小值。零表示默认的3秒。

  • $codes

$codes是要运行的代码数组。

cmpThese($count, $codes)

以比较图的形式打印timeThese的结果。

  • $count

$count是循环运行的次数。此参数必须是正整数。

此参数可以是零或负数。这意味着要运行的CPU秒数的最小值。零表示默认的3秒。

  • $codes

$codes是要运行的代码数组。

timeStr($time_result, $count=null)

打印格式化的时间。

  • $time_result

result-time的实例.

  • $count

循环次数。如果此参数不为null,则此方法附加比率。

timeDiff($new_time, $old_time)

计算$new_time和$old_time之间的差异。

参数必须是result-time的实例

clearCache($count)

清除与$count相关的nop函数的缓存。

clearAllCache()

清除所有nop函数的缓存。

disableCache()

禁用缓存nop函数的缓存。

enableCache()

启用缓存nop函数的缓存。

结果时间

Time类有6个公共成员。

  • $real_time

实际持续时间。

  • $sys_time

系统时间持续时间。

  • $user_time

用户时间持续时间。

  • $child_sys_time

子进程的系统时间持续时间。

  • $child_user_time

子进程的用户时间持续时间。

  • $count

循环运行次数。

样式

此库支持5种样式。

  • all

输出所有基准测试结果。

  • noc

输出不带子进程结果的基准测试结果。

  • nop

输出不带父进程结果的基准测试结果。

  • none

不输出任何内容。

  • auto

如果子进程的CPU时间大于0,则此样式与"all"相同。否则,此样式与"noc"相同。

需要

PHP (版本5.4或更高)

参见

注意

此库在Microsoft Windows上不工作。

许可证

MIT