wol-soft / php-performance-timer
提供收集应用程序内部处理时间的函数
Requires
- php: >=7.1
Requires (Dev)
- phpunit/phpunit: ^8.5
This package is auto-updated.
Last update: 2024-09-18 18:53:22 UTC
README
php-performance-timer
提供收集应用程序内部处理时间的函数
要求
- 至少需要PHP 7.1
安装
推荐通过Composer来安装php-json-schema-model-generator
$ composer require wol-soft/php-performance-timer
用法
要开始计时器,只需使用键调用start
方法。该键将用于标识计时器
Timer::start('my-timer');
使用end
方法完成计时器
Timer::end('my-timer');
默认情况下,进程的计时器测量结果将被收集并写入/tmp/performance_timer.log
(如果从apache调用,则可能不同,因为默认使用sys_get_temp_dir
)。如果您想手动获取结果,请使用Timer::handleResults
。
结果将是一个包含计时器键和从start
到end
之间的持续时间(以毫秒为单位)的CSV文件
my-timer,12.1324
my-timer,14.5271
my-timer,11.7832
...
命名空间计时器
每个start
和end
方法调用都可选地接受第二个参数$namespace
。通过为计时器提供命名空间,您可以在特定组件中启用/禁用测量。
Timer::initSettings(['profileNamespace' => 'component.booking']); ... Timer::start('login', 'component.user'); ... Timer::end('login', 'component.user'); ... Timer::start('check-basket', 'component.booking.init'); ... Timer::end('check-basket', 'component.booking.init');
只有以配置的命名空间开始的命名空间计时器才会执行。没有命名空间的计时器将始终执行。如果将选项profileNamespace
设置为false,则不会执行任何计时器。
异常
默认情况下,计时器执行可能会抛出异常(例如,如果计时器启动两次)。如果您不希望计时器中断您的执行流程,可以将选项throwExceptions
设置为false。在这种情况下,计时器将简单地忽略无效调用。
Timer::initSettings(['throwExceptions' => false]);
自定义数据收集
要收集其他数据(例如,内存消耗、开始和结束时间戳等),您可以添加计时器插件
Timer::addTimerPlugin($callbackStart, $callbackEnd);
$callbackStart
返回的数据将被传递给$callbackEnd
。由$callbackEnd
返回的数据将被包含在生成的CSV文件中。通过从$callbackEnd
返回一个数组,您可以将多个列添加到CSV中。