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 相关文章推荐
PHP date函数参数详解
Nov 27 PHP
PHP Ajax实现页面无刷新发表评论
Jan 02 PHP
PHP表单递交控件名称含有点号(.)会被转化为下划线(_)的处理方法
Jan 06 PHP
解析posix与perl标准的正则表达式区别
Jun 17 PHP
慎用preg_replace危险的/e修饰符(一句话后门常用)
Jun 19 PHP
IIS+fastcgi下PHP运行超时问题的解决办法详解
Jun 20 PHP
配置php网页显示各种语法错误
Sep 23 PHP
PHP生成自适应大小的缩略图类及使用方法分享
May 06 PHP
JavaScript与HTML结合的基本使用方法整理
Oct 12 PHP
php mysqli查询语句返回值类型实例分析
Jun 29 PHP
PHP中overload与override的区别
Feb 13 PHP
PHP使用递归按层级查找数据的方法
Nov 10 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
DC动画电影《黑暗正义联盟》曝预告 5月5日上线数字平台
2020/04/09 欧美动漫
十天学会php之第一天
2006/10/09 PHP
php不使用插件导出excel的简单方法
2014/03/04 PHP
深入理解PHP中的count函数
2016/05/31 PHP
PHP实现提高SESSION响应速度的几种方法详解
2019/08/09 PHP
Laravel5.4框架中视图共享数据的方法详解
2019/09/05 PHP
ImageFlow可鼠标控制图片滚动
2008/01/30 Javascript
兼容各大浏览器的JavaScript阻止事件冒泡代码
2015/07/09 Javascript
JavaScript中setter和getter方法介绍
2016/07/11 Javascript
JavaScript严格模式下关于this的几种指向详解
2017/07/12 Javascript
vue项目中导入swiper插件的方法
2018/01/30 Javascript
layui实现动态和静态分页
2018/04/28 Javascript
vue引入js数字小键盘的实现代码
2018/05/14 Javascript
Three.js实现简单3D房间布局
2018/12/30 Javascript
Angular脚手架开发的实现步骤
2019/04/09 Javascript
vue中 this.$set的用法详解
2019/09/06 Javascript
python实现监控linux性能及进程消耗性能的方法
2014/07/25 Python
Python查找函数f(x)=0根的解决方法
2015/05/07 Python
Python的Twisted框架中使用Deferred对象来管理回调函数
2016/05/25 Python
TensorFlow如何实现反向传播
2018/02/06 Python
python3 selenium 切换窗口的几种方法小结
2018/05/21 Python
Django处理文件上传File Uploads的实例
2018/05/28 Python
使用pycharm在本地开发并实时同步到服务器
2019/08/02 Python
Python内置方法实现字符串的秘钥加解密(推荐)
2019/12/09 Python
css3 pointer-events 介绍详解
2017/09/18 HTML / CSS
新加坡最佳婴儿用品店:Mamahood.com.sg
2018/08/26 全球购物
加拿大在线眼镜零售商:SmartBuyGlasses加拿大
2019/05/25 全球购物
毕业生个人投资创业计划书
2014/01/04 职场文书
《猫》教学反思
2014/02/26 职场文书
施工安全汇报材料
2014/08/17 职场文书
药店促销活动策划方案
2014/08/24 职场文书
家庭教育的心得体会
2014/09/01 职场文书
大学拉赞助协议书范文
2014/09/26 职场文书
先进个人总结范文
2015/02/15 职场文书
公司酒会主持词
2015/07/02 职场文书
2015年小学师德师风建设工作总结
2015/10/23 职场文书