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 身份验证方面的函数
Oct 11 PHP
PHP 抓取网页图片并且另存为的实现代码
Mar 24 PHP
简单的PHP留言本实例代码
May 09 PHP
PHP实现扎金花游戏之大小比赛的方法
Mar 10 PHP
PHP curl伪造IP地址和header信息代码实例
Apr 27 PHP
微信支付开发维权通知实例
Jul 12 PHP
Yii2汉字转拼音类的实例代码
Apr 18 PHP
PHP简单留言本功能实现代码
Jun 09 PHP
老生常谈php中传统验证与thinkphp框架(必看篇)
Jun 10 PHP
浅谈Laravel核心解读之Console内核
Dec 02 PHP
PHP实现将上传图片自动缩放到指定分辨率,并保持清晰度封装类示例
Jun 17 PHP
基于laravel where的高级使用方法
Oct 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
PHP imagegrabscreen和imagegrabwindow(截取网站缩略图)的实例代码
2013/11/07 PHP
zf框架的registry(注册表)使用示例
2014/03/13 PHP
基于php实现随机合并数组并排序(原排序)
2015/11/26 PHP
WordPress主题制作中自定义头部的相关PHP函数解析
2016/01/08 PHP
PHP面向对象之工作单元(实例讲解)
2017/06/26 PHP
Laravel框架分页实现方法分析
2018/06/12 PHP
使用vs code编辑调试php配置的方法
2019/01/29 PHP
jQuery chili图片远处放大插件
2009/11/30 Javascript
jQuery EasyUI中对表格进行编辑的实现代码
2010/06/10 Javascript
IE、FF、Chrome浏览器中的JS差异介绍
2013/08/13 Javascript
jquery+php随机生成红包金额数量代码分享
2015/08/27 Javascript
jQuery中通过ajax调用webservice传递数组参数的问题实例详解
2016/05/20 Javascript
javascript 数组的定义和数组的长度
2016/06/07 Javascript
关于Jquery中的bind(),on()绑定事件方式总结
2016/10/26 Javascript
jQuery.Validate表单验证插件的使用示例详解
2017/01/04 Javascript
纯js三维数组实现三级联动效果
2017/02/07 Javascript
JS实现最简单的冒泡排序算法
2017/02/15 Javascript
详解axios中封装使用、拦截特定请求、判断所有请求加载完毕)
2019/04/09 Javascript
Vue 中如何正确引入第三方模块的方法步骤
2019/05/05 Javascript
解决vue请求接口第一次成功,第二次失败问题
2020/09/08 Javascript
[47:10]完美世界DOTA2联赛PWL S3 LBZS vs Rebirth 第二场 12.16
2020/12/18 DOTA
python网络编程学习笔记(四):域名系统
2014/06/09 Python
Python中的异常处理相关语句基础学习笔记
2016/07/11 Python
解决python写入mysql中datetime类型遇到的问题
2018/06/21 Python
Python 3.8 新功能来一波(大部分人都不知道)
2020/03/11 Python
windows+vscode安装paddleOCR运行环境的步骤
2020/11/11 Python
HTML高亮关键字的实现代码
2018/10/22 HTML / CSS
Ryderwear澳洲官网:澳大利亚高端健身训练装备品牌
2018/09/18 全球购物
美国购买新书和二手书网站:Better World Books
2018/10/31 全球购物
请说出以下代码输出什么
2013/08/30 面试题
历史学专业毕业生求职信
2013/09/27 职场文书
18岁生日感言
2014/01/12 职场文书
指导教师评语
2014/04/26 职场文书
离婚协议书范文2015
2015/01/26 职场文书
药店收银员岗位职责
2015/04/07 职场文书
导游词之珠海轮廓
2019/10/25 职场文书