PHP性能分析工具XHProf安装使用教程


Posted in PHP onMay 13, 2015

HProf是facebook开源出来的一个php轻量级的性能分析工具,跟Xdebug类似,但性能开销更低,还可以用在生产环境中,也可以由程序开关来控制是否进行profile。基于浏览

器的性能分析用户界面能更容易查看,或是与同行们分享成果。也能绘制调用关系图。在数据收集阶段,它记录调用次数的追踪和包容性的指标弧在动态callgraph的一个程序。

它独有的数据计算的报告/后处理阶段。在数据收集时,XHProfd通过检测循环来处理递归的函数调用,并通过给递归调用中每个深度的调用一个有用的命名来避开死循环。

XHProf的轻量级性质和汇聚功能,使得它非常适合用于收集“生产环境”的性能统计数据的统计。

1. 安装XHProf

wget http://pecl.php.net/get/xhprof-0.9.2.tgz 

tar zxf xhprof-0.9.2.tgz 

cd xhprof-0.9.2 

cp -r xhprof_html xhprof_lib <directory_for_htdocs> 

cd extension 

phpize 

./configure 

make 

make install

2. 配置 php.ini 文件

[xhprof] 

extension=xhprof.so 

; 

; directory used by default implementation of the iXHProfRuns 

; interface (namely, the XHProfRuns_Default class) for storing 

; XHProf runs. 

; 记得<directory_for_storing_xhprof_runs>WEB要有写入权限 

xhprof.output_dir=<directory_for_storing_xhprof_runs>

重启服务让修改生效,现在就可以使用XHProf了,不过为了显示效果更炫,最好继续安装Graphviz。

3. 安装Graphviz

wget http://www.graphviz.org/pub/graphviz/stable/SOURCES/graphviz-2.26.3.tar.gz   

tar zxf graphviz-2.26.3.tar.gz    

cd graphviz-2.26.3   

./configure 

make    

make install

安装完成后,会生成/usr/local/bin/dot文件,你应该确保路径在PATH环境变量里,以便XHProf能找到它。

4. 应用XHProf

xhprof_enable();//打开xhprof
/******程序逻辑 Start******/

function test1(){

 sleep(3);

 return;

}

function test2(){

 test1();

}

function test3(){

 test2();

}

function p(){

 echo '<h3>xhprof test</h3>';

}

p();

test3();

/******程序逻辑 End******/
$xhprof_data = xhprof_disable();//关闭xhprof
//保存xhprof数据

include_once '../xhprof_lib/utils/xhprof_lib.php';

include_once '../xhprof_lib/utils/xhprof_runs.php';
$xhprof_runs = new XHProfRuns_Default();

$xhprof_source = 'xhprof_test';

$run_id = $xhprof_runs->save_run($xhprof_data, $xhprof_source);

$report_url = 'http://xhprof.rebill.info/index.php?run='.$run_id.'&source='.$xhprof_source;

echo '<br>';

echo 'view the performance report:<a href="'.$report_url.'" target="_blank">'.$report_url.'</a>';

如此一来,会在上面设定的xhprof.output_dir目录里生成名字类似4c236583ef490.xhprof_test的数据文件,可以很方便的通过Web方式浏览效果:
http://xhprof.rebill.info/index.php?run=4c236583ef490&source=xhprof_test

目前显示的是表格形式的显示,点击页面上的[View Full Callgraph],就能看到精美的图片显示了。

在线测试体验地址:http://xhprof.rebill.info/test.php

PHP 相关文章推荐
BBS(php &amp; mysql)完整版(六)
Oct 09 PHP
批量去除PHP文件中bom的PHP代码
Mar 13 PHP
PHP遍历数组的几种方法
Mar 22 PHP
浅析HTTP消息头网页缓存控制以及header常用指令介绍
Jun 28 PHP
php数组排序usort、uksort与sort函数用法
Nov 17 PHP
thinkphp实现上一篇与下一篇的方法
Dec 08 PHP
php获取从百度、谷歌等搜索引擎进入网站关键词的方法
Jul 08 PHP
PHP使用GD库输出汉字的方法【测试可用】
Nov 10 PHP
php curl上传、下载、https登陆实现代码
Jul 23 PHP
PHP chr()函数讲解
Feb 11 PHP
PHP后台备份MySQL数据库的源码实例
Mar 18 PHP
php 多继承的几种常见实现方法示例
Nov 18 PHP
PHP CURL 多线程操作代码实例
May 13 #PHP
百度工程师讲PHP函数的实现原理及性能分析(三)
May 13 #PHP
百度工程师讲PHP函数的实现原理及性能分析(二)
May 13 #PHP
百度工程师讲PHP函数的实现原理及性能分析(一)
May 13 #PHP
PHP版本如何选择?应该使用哪个版本?
May 13 #PHP
PHP Hash算法:Times33算法代码实例
May 13 #PHP
你应该知道PHP浮点数知识
May 13 #PHP
You might like
数据库的日期格式转换
2006/10/09 PHP
php适配器模式介绍
2012/08/14 PHP
phpexcel导入excel数据使用方法实例
2013/12/24 PHP
PHP中的按位与和按位或操作示例
2014/01/27 PHP
浅谈PHP解析URL函数parse_url和parse_str
2014/11/11 PHP
详解PHP的Yii框架的运行机制及其路由功能
2016/03/17 PHP
php + WebUploader实现图片批量上传功能
2019/05/06 PHP
Laravel框架表单验证操作实例分析
2019/09/30 PHP
js限制文本框只能输入数字(正则表达式)
2012/07/15 Javascript
jQuery .attr()和.removeAttr()方法操作元素属性示例
2013/07/16 Javascript
JS实现匀速运动的代码实例
2013/11/29 Javascript
使用jquery实现的一个图片延迟加载插件(含图片延迟加载原理)
2014/06/05 Javascript
14款NodeJS Web框架推荐
2014/07/11 NodeJs
JSON字符串和对象相互转换实例分析
2016/06/16 Javascript
Vue项目中跨域问题解决方案
2018/06/05 Javascript
js实现录音上传功能
2019/11/22 Javascript
[37:29]完美世界DOTA2联赛PWL S2 LBZS vs Forest 第二场 11.19
2020/11/19 DOTA
浅析Python中yield关键词的作用与用法
2016/11/29 Python
Python实现按特定格式对文件进行读写的方法示例
2017/11/30 Python
删除DataFrame中值全为NaN或者包含有NaN的列或行方法
2018/11/06 Python
详解如何用django实现redirect的几种方法总结
2018/11/22 Python
nohup后台启动Python脚本,log不刷新的解决方法
2019/01/14 Python
python3实现zabbix告警推送钉钉的示例
2019/02/20 Python
Python如何生成xml文件
2020/06/04 Python
如何在Canvas中添加事件的方法示例
2019/05/21 HTML / CSS
英国领先的杂志订阅网站:Magazine.co.uk
2018/01/25 全球购物
优瑞自动咖啡机官网:Jura
2018/09/29 全球购物
2014年公司植树节活动方案
2014/03/04 职场文书
银行内勤岗位职责
2014/04/09 职场文书
保险专业求职信
2014/07/07 职场文书
高二学年自我鉴定范文(2篇)
2014/09/26 职场文书
收款授权委托书
2014/10/02 职场文书
于丹论语心得观后感
2015/06/15 职场文书
贫困证明怎么写
2015/06/16 职场文书
新闻通讯稿范文
2015/07/22 职场文书
python基础之//、/与%的区别详解
2022/06/10 Python