PHP7下安装并使用xhprof性能分析工具

admin3年前PHP教程30

该 xhprof 版本是从 github/longxinH/xhprof 获取

安装 xhprof

cd xhprof/extension/

phpize

./configure 

make

然后在/etc/php.ini中根据情况加入

extension=xhprof.so

执行

php -m | grep xhprof

可以看见输出,说明php扩展安装成功,然后重启Apache或者php-fpm

运行

可以直接运行从github上clone下来的文件里面example目录下的那个例子

输出如下

Array

(

    [main()] => Array

        (

            [ct] => 1

            [wt] => 9

        )

)

---------------

Assuming you have set up the http based UI for 

XHProf at some address, you can view run at 

<xhprof-ui-address>/index.php?run=592567308784c&source=xhprof_foo

然后复制index.php后面的?run=592567308784c&source=xhprof_foo

访问

xhprof_html/index.php?run=592567308784c&source=xhprof_foo

可看见输出

点击中间的 View Full Callgraph 即可看见性能分析图片

报错

failed to execute cmd:" dot -Tpng". stderr:sh: dot:command not found。

//解决方案yum install graphviz

随机应变

比如想测试自己的项目,例如一款框架的性能分析。

复制xhprof_lib/utils/下的两个文件

xhprof_lib.php和xhprof_runs.php到入口文件同级目录,然后在入口文件起始位置添加

// start profilingxhprof_enable();

结束位置添加

// stop profiler$xhprof_data = xhprof_disable();// display raw xhprof data for the profiler runprint_r($xhprof_data);include_once "xhprof_lib.php";include_once "xhprof_runs.php";// save raw data for this profiler run using default// implementation of iXHProfRuns.$xhprof_runs = new XHProfRuns_Default();// save the run under a namespace "xhprof_foo"$run_id = $xhprof_runs->save_run($xhprof_data, "xhprof_foo");echo "---------------". "Assuming you have set up the http based UI for ". "XHProf at some address, you can view run at ". "<xhprof-ui-address>/index.php?run=$run_id&source=xhprof_foo". "---------------";

即可得到如上所示的那个url,然后再次去访问

***/xhprof_html/index.php?run=*****&source=xhprof_foo

得到如下所示页面

查看图片

图中红色的部分为性能比较低,耗时比较长的部分,我们可以根据根据哪些函数被标记为红色对系统的代码进行优化

补充

    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峰值百分比。

以上就是PHP7下安装并使用xhprof性能分析工具的详细内容,更多关于PHP7下安装并使用xhprof的资料请关注其它相关文章!

免责声明:本文内容来自用户上传并发布,站点仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。请核实广告和内容真实性,谨慎使用。

相关文章

企业网络安全的重要性?租用泉州高防大带宽服务器配置推荐?

你永远想不到网络安全对于公司的重要性,首先网络安全相当于人体的各类器官,是一个重要组成部分,而且是必不可少的,如果网络安全出现问题就相当于“千里之堤毁于蚁穴”,那我们平时面临的网络安全问题都有哪些呢?...

显卡服务器的主要功能有香港显卡服务器如何选择合适的

显卡服务器也称为GPU服务器。GPU服务器是一种用于计算机科学技术领域的计算机硬件及其配套设备。其主要功能有:3D地理空间数据可视化、视频稳定、滤波、马赛克、转码等应用研究与教育,如成像与处理等天体物...

PHP实现JWT的Token登录认证

1、JWT简介JSON Web Token(缩写 JWT),是目前最流行的跨域认证解决方案。session登录认证方案:用户从客户端传递用户名、密码等信息,服务端认证后将信息存储在session中,将...

PHP中使用pthread拓展

目录一. 线程的创建和使用1. Thread类2.Worker类二. PHP线程遇到的一些问题与注意点1.线程类的属性不能直接进行哈希表(数组)操作,如:2.线程类的属性不能是“闭包函数&...

扬州高防服务器如何防止服务器被入侵

扬州高防服务器可以采取以下措施来防止服务器被入侵:1.使用强密码:确保服务器密码是足够强大的,建议使用至少12位字符的复杂密码,并定期更改密码。2.更新软件和补丁程序:定期检查并更新服务器上的软件和补...

购买宁波高防服务器进行ddos攻击防御多少g才够用

购买宁波高防服务器进行ddos攻击防御多少g才够用?购买宁波高防服务器进行DDoS攻击防御时,需要考虑多个因素,包括攻击类型、攻击流量、服务器的带宽和防护能力等等。因此,不同的防御需求需要不同的防御能...