stevad/yii-xhprof

Yii扩展,用于使用Facebook XHProf分析应用

安装数: 6,419

依赖项: 1

建议者: 0

安全: 0

星标: 0

关注者: 3

分支: 1

开放问题: 0

类型:yii-extension

v0.1.1 2015-10-16 13:17 UTC

This package is auto-updated.

Last update: 2024-09-15 22:38:38 UTC


README

这是一个简单的扩展,用于在Yii Framework 1.x中与XHProf一起使用。

可以与yii2-debug扩展一起使用(包含调试面板)。

默认情况下,配置在onBeginRequest事件开始,在onEndRequest事件停止。您可以更改此行为并手动启动和停止分析器。

有关许可证信息,请查看LICENSE文件。

在Yii Framework v1.1.16上测试过。

安装

此扩展可在packagist.org上找到,可以通过以下命令通过composer安装:

composer require --dev stevad/yii-xhprof.

如果您想手动安装此扩展,请将源代码复制到/protected/extensions目录。

启用分析器的最小配置

return array(
    'preload' => array(
        'xhprof'
    ),
    'components' => array(
        'xhprof' => array(
            'class' => 'ext.yii-xhprof.XHProfComponent', // if you install to protected/extensions
            'libPath' => '/full/path/to/xhprof_lib',
            'htmlReportBaseUrl' => 'http://url.path.to/xhprof_html',
        ),
    ),
);

如果您想向yii2-debug扩展添加捆绑的调试面板,请按以下方式更新配置:

return array(
    'components' => array(
        'debug' => array(
            // ... other debug config options ...
            'panels' => array(
                'xhprof' => array(
                    'class' => 'ext.yii-xhprof.XHProfPanel' // if you install to protected/extensions
                )
            )
        ),
    ),
);

所需XHProf文件(库文件xhprof_lib和UIxhprof_html)可在以下GitHub仓库中找到。

组件配置

扩展为Yii组件提供以下配置选项

  • enabled - 启用/禁用分析器组件。
  • reportPathAlias - 存储之前分析运行JSON文件的目录的路径别名。默认:application.runtime.xhprof
  • maxReportsCount - 要存储的分析报告数。默认:25
  • manualStart - 从期望的位置手动启动分析器的标志。默认:false
  • manualStop - 从期望的位置手动停止分析器的标志。默认:false
  • forceStop - 如果启用了manualStop并且分析器仍在运行,则在onEndRequest事件上强制停止分析器的标志。默认:true
  • triggerGetParam - 手动触发分析器启动的GET参数名称。默认:无值,分析器在每次请求上运行。
  • showOverlay - 在页面显示覆盖层,显示报告和当前分析运行调用图链接的标志(如果允许)。如果您正在使用yii2-debug扩展捆绑的面板,则不需要此标志为true。默认:true
  • libPathAlias - 如果xhprof_lib放在您的Yii项目中某个地方,则包含xhprof_lib内容的目录的路径别名。此选项比libPath具有更高优先级。
  • libPath - 包含xhprof_lib内容的目录的直接文件系统路径。
  • htmlReportBaseUrl - XHProf UI内容的URL路径(xhprof_html)。默认:/xhprof_html(假设您在文档根目录中有一个此文件夹)。
  • flagNoBuiltins - 为分析器启用/禁用XHPROF_FLAGS_NO_BUILTINS标志(XHProf常量)。默认:true
  • flagCpu - 为分析器启用/禁用XHPROF_FLAGS_CPU标志(XHProf常量)。默认:false
  • flagMemory - 为分析器启用/禁用XHPROF_FLAGS_MEMORY标志(XHProf常量)。默认:true
  • blacklistedRoutes - 应该被剖析器忽略的路由列表。允许通配符 *,表示“任何字母数字值以及以下之一:/._-。默认:array('debug*')(忽略对调试扩展页面的请求)。

XHProf 类配置

扩展组件使用自己开发的简单包装器来使用 xhprof_enable / xhprof_disable 函数:XHProf 类。此类提供通过 Facebook 的 XHProf 库启动/停止剖析、保存报告和获取报告 URL 的功能。

可用的配置选项(适用于 configure 方法,见下例)

  • flagNoBuiltins - 为分析器启用/禁用XHPROF_FLAGS_NO_BUILTINS标志(XHProf常量)。默认:true
  • flagCpu - 为分析器启用/禁用XHPROF_FLAGS_CPU标志(XHProf常量)。默认:false
  • flagMemory - 为分析器启用/禁用XHPROF_FLAGS_MEMORY标志(XHProf常量)。默认:true
  • libPath - 包含xhprof_lib内容的目录的直接文件系统路径。
  • htmlUrlPath - XHProf UI 内容目录的 URL 路径(xhprof_html)。
  • runId - 当前剖析运行标识符的预定义值。
  • runNamespace - 当前剖析运行的命名空间预定义值。

所有选项都可以通过设置器更改(例如 setFlagCpu(<value>))。有关更多详细信息,请参阅类的源代码。

手动剖析

如果您启用手动启动(manualStart 选项)或停止(manualStop 选项),您可以在代码的任何位置放置启动/停止剖析器的代码,并能够查看报告和调用图结果。

要手动启动,您需要编写以下类型的代码

// create and configure instance of XHProf class
XHProf::getInstance()->configure(array(
    'flagNoBuiltins' => true,
    'flagCpu' => false,
    'flagMemory' => true,
    'runNamespace' => 'my-cool-namespace',
    'libPath' => '/var/www/html/xhprof/xhprof_lib',
    'htmlUrlPath' => 'http://test.local/xhprof/xhprof_html'
));

// start profiler
XHProf::getInstance()->run();

要手动停止,您需要编写以下代码

// stop profiler
XHProf::getInstance()->stop();

注意:如果您使用 XHProf 类(带有或没有此扩展),则所有剖析结果都可以在 XHProf UI 页面上找到(默认情况下由 xhprof 开发者提供)。

作者

版权所有(c)2015 由 Stevad。