yiisoft/profiler

性能分析器

3.0.0 2023-02-15 09:15 UTC

This package is auto-updated.

Last update: 2024-09-20 11:09:17 UTC


README

Yii

Yii 性能分析器


Latest Stable Version Total Downloads Build status Scrutinizer Code Quality Code Coverage Mutation testing badge static analysis type-coverage

该包提供记录性能配置文件的能力。

需求

  • PHP 8.0 或更高版本。

安装

可以使用 Composer 安装此包

composer require --dev yiisoft/profiler

如果您使用此包与 Yii 配置,且在 yiisoft/aliases 配置中没有定义 @runtime 别名,则应用程序将抛出 "无效路径别名" 错误。

要解决这个问题,请在 params.php 中的 yiisoft/aliases 配置中添加 @runtime 别名。

return [
    //...
    'yiisoft/aliases' => [
        'aliases' => [
            //...
            '@runtime' => '@root/runtime'
        ],
    ],
    //...
];

通用用法

性能分析

use Psr\Log\NullLogger;
use Yiisoft\Profiler\Profiler;
use Yiisoft\Profiler\Target\LogTarget;

$logger = new NullLogger();
$target = new LogTarget($logger);

$profiler = new Profiler($logger, [$target]);

$profiler->begin('test');
//...some code
$profiler->end('test');

嵌套性能分析

$profiler->begin('test');
//...some code
    $profiler->begin('test');
    //...some code
    $profiler->end('test');
//...some code
$profiler->end('test');

获取性能分析器消息

$messages = $profiler->getMessages(); 
print_r($messages);

输出

Array
(
    [0] => Yiisoft\Profiler\Message Object
        (
            [level:Yiisoft\Profiler\Message:private] => application
            [token:Yiisoft\Profiler\Message:private] => test
            [context:Yiisoft\Profiler\Message:private] => Array
                (
                    [token] => test
                    [category] => application
                    [nestedLevel] => 0
                    [time] => 1614703708.4328
                    [beginTime] => 1614703708.4328
                    [beginMemory] => 7696440
                    [endTime] => 1614703708.4331
                    [endMemory] => 7702392
                    [duration] => 0.0003058910369873
                    [memoryDiff] => 5952
                )

        )

)

使用给定标记查找性能分析器消息

$profiler->begin('test');
//...some code
$profiler->end('test');
$profiler->begin('another test');
//...some code
$profiler->end('another test');

$messages = $profiler->findMessages('another test');
print_r($messages);

输出

Array
(
    [0] => Yiisoft\Profiler\Message Object
        (
            [level:Yiisoft\Profiler\Message:private] => application
            [token:Yiisoft\Profiler\Message:private] => another test
            [context:Yiisoft\Profiler\Message:private] => Array
                (
                    [token] => another test
                    [category] => application
                    [nestedLevel] => 0
                    [time] => 1614703716.4328
                    [beginTime] => 1614703716.4328
                    [beginMemory] => 7696440
                    [endTime] => 1614703716.4331
                    [endMemory] => 7702392
                    [duration] => 0.0003058910369873
                    [memoryDiff] => 5952
                )

        )

)

将消息保存到存储中

// obtain profiler
$profiler = getProfiler();
// send profiler messages to targets
$profiler->flush();

文档

如果您需要帮助或有问题,请访问 Yii 论坛。您还可以查看其他 Yii 社区资源

许可证

Yii 性能分析器是免费软件。它根据 BSD 许可证条款发布。请参阅 LICENSE 获取更多信息。

Yii 软件公司 维护。

支持项目

Open Collective

关注更新

Official website Twitter Telegram Facebook Slack