前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Webman实战教程:XHProf 性能分析工具插件

Webman实战教程:XHProf 性能分析工具插件

作者头像
Tinywan
发布2023-10-26 19:14:44
2370
发布2023-10-26 19:14:44
举报
文章被收录于专栏:开源技术小栈开源技术小栈

简介

XHProf 是一个分层PHP性能分析工具。它报告函数级别的请求次数和各种指标,包括阻塞时间,CPU时间和内存使用情况。一个函数的开销,可细分成调用者和被调用者的开销,XHProf数据收集阶段,它记录调用次数的追踪和包容性的指标弧在动态callgraph的一个程序。它独有的数据计算的报告/后处理阶段。

在数据收集时,XHProfd通过检测循环来处理递归的函数调用,并通过给递归调用中每个深度的调用一个有用的命名来避开死循环。

XHProf分析报告有助于理解被执行的代码的结构,它有一个简单的HTML的用户界面( PHP写成的)。基于浏览器的性能分析用户界面能更容易查看,或是与同行们分享成果。也能绘制调用关系图。

XHProf是由Facebook开发并开源的,是一个成熟的性能分析工具,广泛应用于PHP开发中。

XHProf 安装

下载

代码语言:javascript
复制
wget https://pecl.php.net/get/xhprof-2.3.9.tgz
tar -zxvf xhprof-2.3.9.tgz
cd ./xhprof-2.3.9/extension
phpize
./configure --with-php-config=/usr/local/php-7.4/bin/php-config
make
make install

php.ini 配置

代码语言:javascript
复制
[xhprof]
extension=xhprof.so;
xhprof.output_dir=/tmp/xhprof;

确认是否安装成功

代码语言:javascript
复制
/var/www # php --ri xhprof

xhprof

xhprof support => enabled
Version => 2.3.9

插件使用

安装

代码语言:javascript
复制
composer require tinywan/webman-xhprof

配置 config/middleware.php

代码语言:javascript
复制
return [
    '' => [
        \Tinywan\Xhprof\XhprofMiddleware::class,
    ]
];

查看分析结果

可以使用XHProf提供的Web界面查看分析结果。将XHProf目录复制到Web服务器的根目录下,并访问 http://127.0.0.1/xhprof/xhprof_html/index.php

Existing runs

Webman\App::Webman\{closure}

图形化展示

在Web界面中,可以选择要分析的数据文件并查看分析结果,包括函数调用图、函数调用树、函数列表和函数分析详情等。

其他

代码语言:javascript
复制
Function Name:方法名称。
Calls:方法被调用的次数。
Calls%:方法调用次数在同级方法总数调用次数中所占的百分比。
Incl.Wall Time(microsec):方法执行花费的时间,包括子方法的执行时间。(单位:微秒)
IWall%:方法执行花费的时间百分比。
Excl. Wall Time(microsec):方法本身执行花费的时间,不包括子方法的执行时间。(单位:微秒)
EWall%:方法本身执行花费的时间百分比。
Incl. CPU(microsecs):方法执行花费的CPU时间,包括子方法的执行时间。(单位:微秒)
ICpu%:方法执行花费的CPU时间百分比。
Excl. CPU(microsec):方法本身执行花费的CPU时间,不包括子方法的执行时间。(单位:微秒)
ECPU%:方法本身执行花费的CPU时间百分比。
Incl.MemUse(bytes):方法执行占用的内存,包括子方法执行占用的内存。(单位:字节)
IMemUse%:方法执行占用的内存百分比。
Excl.MemUse(bytes):方法本身执行占用的内存,不包括子方法执行占用的内存。(单位:字节)
EMemUse%:方法本身执行占用的内存百分比。
Incl.PeakMemUse(bytes):Incl.MemUse峰值。(单位:字节)
IPeakMemUse%:Incl.MemUse峰值百分比。
Excl.PeakMemUse(bytes):Excl.MemUse峰值。单位:(字节)
EPeakMemUse%:Excl.MemUse峰值百分比。
本文参与?腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-10-25,如有侵权请联系?cloudcommunity@tencent.com 删除

本文分享自 开源技术小栈 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与?腾讯云自媒体同步曝光计划? ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 简介
  • XHProf 安装
    • 下载
      • php.ini 配置
        • 确认是否安装成功
        • 插件使用
          • 安装
            • 配置 config/middleware.php
              • 查看分析结果
                • Existing runs
                • Webman\App::Webman\{closure}
                • 图形化展示
            • 其他
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
            http://www.vxiaotou.com