wol-soft/php-performance-timer

提供收集应用程序内部处理时间的函数

0.2.0 2020-10-02 11:36 UTC

This package is auto-updated.

Last update: 2024-09-18 18:53:22 UTC


README

Latest Version Minimum PHP Version Maintainability Test Coverage Build Status Coverage Status MIT License

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

结果将是一个包含计时器键和从startend之间的持续时间(以毫秒为单位)的CSV文件

my-timer,12.1324
my-timer,14.5271
my-timer,11.7832
...

命名空间计时器

每个startend方法调用都可选地接受第二个参数$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中。