chajr / class-benchmark
Requires
- php: >=7.1.0
- symfony/console: ^4.1
- twig/twig: ^2.5
Requires (Dev)
- phpunit/phpunit: ~7
- satooshi/php-coveralls: 1.0.*
This package is not auto-updated.
Last update: 2022-02-01 12:40:15 UTC
README
文档
计时器基本用法
- 通过执行
\Benchmark\Performance\Timer::start()
来启动基准测试,这将启动时间存储。 - 要从 开始时间 测量时间,直到某个位置使用
::setMarker('some description')
,这将保存从开始或上一个标记到当前位置的执行时间和内存使用。 - 设置了一些标记后,使用
::stop()
来停止基准测试。 - 使用
::calculateStats()
来获取关于执行时间和内存使用的信息。
\Benchmark\Performance\Timer::start(); sleep 3; \Benchmark\Performance\Timer::setMarker('sleep'); sleep 5; \Benchmark\Performance\Timer::setMarker('another sleep'); \Benchmark\Performance\Timer::stop(); var_dump(\Benchmark\Performance\Timer::calculateStats());
- 如果您想获取格式化的输出,请查看下面的 计时器格式化输出 部分。
计时器高级用法
为了更清楚地查看,我们可以将统计信息组合成组,以查看整个组的时间和内存使用情况。要开始测量组,使用 ::startGroup('group name')
,在组内设置标记,并使用与相同名称的 ::endGroup('group name')
来存储组内的统计信息。当然,也可以创建嵌套组。
计时器其他功能
- start() 可以有一个额外的布尔参数,如果为 false,则整个计时器将被禁用
- turnOffBenchmark() 允许关闭计时器
- turnOnBenchmark() 允许打开计时器
计时器格式化输出
有三种可能的方法来获取格式化的输出。第一个允许以格式化的时间、内存和百分比值作为数组获取输出。第二个允许通过 Symfony Console 输出类获取格式化输出。最后一个允许以 HTML 获取输出。
预格式化数组
执行 \Benchmark\Performance\Timer::stop();
后,执行 (Timer::getFormattedOutput('raw+')
来获取包含格式化内存、时间和百分比的数组。使用 raw 作为参数返回原始值,与 \Benchmark\Performance\Timer::calculateStats();
的使用相同。
控制台输出
执行 \Benchmark\Performance\Timer::stop();
后,执行 (Timer::getFormattedOutput('shell')
来获取用于控制台的格式化输出。输出将与以下输出相当
Total application runtime: ~1 001.8280 ms Total memory usage: ~3602 kB
=========================================================================
val: 0 ~0.0050 ms 0.00050 % ~0,000 kB
val: 1 ~100.1649 ms 9.99821 % ~0,000 kB
val: 2 ~100.1842 ms 10.00014 % ~0,000 kB
val: 3 ~100.1740 ms 9.99912 % ~0,000 kB
val: 4 ~100.1639 ms 9.99812 % ~0,000 kB
example group START
val: 0 ~100.2018 ms 10.00190 % ~0,000 kB
val: 1 ~100.1649 ms 9.99821 % ~0,000 kB
val: 2 ~100.1790 ms 9.99962 % ~0,000 kB
val: 3 ~100.1539 ms 9.99712 % ~0,000 kB
val: 4 ~100.1499 ms 9.99671 % ~0,000 kB
example group END
HTML 输出
执行 \Benchmark\Performance\Timer::stop();
后,执行 (Timer::getFormattedOutput('html')
来获取用于浏览器的格式化输出。输出将与以下输出相当
<div style=" color: #fff; background-color: #000; border: 1px solid #fff; width: 90%; text-align: center; margin: 25px auto; "> Total application runtime: ~1 001.8280 ms Total memory usage: ~3129.140625 kB <br /> <br /> Marker times: <br /> <table style="width:100%"> <tr style="background-color:#202020"> <td style="width:40%;color:#fff">val: 0</td> <td style="width:20%;color: #fff;">~0.0050 ms</td> <td style="width:20%;color: #fff;">0.00050 %</td> <td style="width:20%;color:#fff">~0,000 kB</td> </tr>
编写自己的输出格式化程序
如果您想以自己指定的格式获取数据,可以将它应用到 calculateStats
方法上。此方法接受 callable
类型来在返回之前处理数据数组。
这是原始代码中的样子: self::calculateStats([Formatter::class, 'formatValues']);
- 这将执行 Formatter::class
类中的 formatValues
方法。
截图
通过Composer安装
要使用包,您只需下载包并将其放置在您的代码中即可。但推荐使用ClassBenchmark的方式是通过Composer安装。要包含ClassBenchmark库,请将其粘贴到composer.json中
{ "require": { "chajr/class-benchmark": "version" } }
所需的ClassBenchmark库(ClassKernel)将自动加载。
项目描述
使用的约定
要求
- PHP 5.4或更高版本
- 启用DOM扩展
变更日志
所有发布版本的变化
变更日志
许可
此软件包在Apache 2.0许可下发布。
Apache许可证