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

admin3年前PHP教程49

该 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的资料请关注其它相关文章!

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

相关文章

泉州高防服务器效果怎样

泉州高防服务器效果怎样?泉州高防服务器的效果取决于服务器的规格和高防技术的质量。如果服务器规格足够高,并且高防技术优秀,那么它可以有效地防御各种类型的攻击,例如DDoS攻击、CC攻击、SQL注入等等。...

台湾物理服务器配置推荐怎么选择

台湾物理服务器配置推荐怎么选择?选择台湾服务器的物理配置需要根据你的实际需求和预算来决定。以下是一些推荐的配置:处理器:双路IntelXeonE5或更高级别的处理器,可以提供更高的性能和稳定性。内存:...

租用台湾多ip服务器如何选择

租用台湾多ip服务器如何选择?以下是一篇关于如何选择台湾多IP服务器的文章,希望对您有所帮助:选择台湾多IP服务器是一个重要的决定,因为这将直接影响您的网络体验和安全性。以下是一些有用的提示,可以帮助...

显卡和gpu的区别泉州显卡服务器租用哪里有

GPU:图形处理器(英语:Graphics​​​Processing​​​Unit,缩写:GPU),又称显示核心、视觉处理器、显...

PHP设计模式(观察者模式)

PHP 设计模式之观察者模式介绍现在有两派,有的人建议使用设计模式,有的人不建议使用设计模式! 这就向写文章一样,有的人喜欢文章按照套路走,比如叙事性质的文章,时间,地点,人物,事件。而有的人喜欢写杂...

详解PHP八大设计模式

PHP命名空间可以更好地组织代码,与Java中的包类似。Test1.php<?phpnamespace Test1;//命名空间Test1function test(){echo __FILE_...