PHP7下安装并使用xhprof性能分析工具
发布:smiling 来源: PHP粉丝网 添加日期:2022-04-22 10:46:10 浏览: 评论:0
该 xhprof 版本是从 https://github.com/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
http://<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 profiling
xhprof_enable();
结束位置添加
- // stop profiler
- $xhprof_data = xhprof_disable();
- // display raw xhprof data for the profiler run
- print_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 "---------------\n".
- "Assuming you have set up the http based UI for \n".
- "XHProf at some address, you can view run at \n".
- "http://<xhprof-ui-address>/index.php?run=$run_id&source=xhprof_foo\n".
- "---------------\n";
即可得到如上所示的那个url,然后再次去访问
http://***/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峰值百分比。
Tags: PHP7性能分析工具 xhprof
- 上一篇:PHP远程调用以及RPC框架
- 下一篇:最后一页
相关文章
- ·使用xhprof在开发环境中测试php性能(2015-04-04)
- ·PHP性能分析工具XHProf深入分析(2018-10-31)
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)