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实现ftp上传文件示例
Aug 21 PHP
PHP使用mysqldump命令导出数据库
Apr 14 PHP
php验证码生成代码
Nov 11 PHP
自定义min版smarty模板引擎MinSmarty.class.php文件及用法
May 20 PHP
postfixadmin忘记密码后的修改密码方法详解
Jul 20 PHP
实例讲解YII2中多表关联的使用方法
Jul 21 PHP
php实现基于pdo的事务处理方法示例
Jul 21 PHP
PHP实现基于图的深度优先遍历输出1,2,3...n的全排列功能
Nov 10 PHP
PHP面向对象五大原则之开放-封闭原则(OCP)详解
Apr 04 PHP
ThinkPHP5 验证器的具体使用
May 31 PHP
Yii Framework框架使用PHPExcel组件的方法示例
Jul 24 PHP
Yii框架模拟组件调用注入示例
Nov 11 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
CodeIgniter php mvc框架 中国网站
2008/05/26 PHP
PHP中使用file_get_contents抓取网页中文乱码问题解决方法
2014/12/17 PHP
php将图片保存为不同尺寸图片的图片类实例
2015/03/30 PHP
WordPress中获取所使用的模板的页面ID的简单方法
2015/12/31 PHP
Yii框架结合sphinx,Ajax实现搜索分页功能示例
2016/10/18 PHP
用JS操作FRAME中的IFRAME及其内容的实现代码
2008/07/26 Javascript
javascript事件问题
2009/09/05 Javascript
javascript十个最常用的自定义函数(中文版)
2009/09/07 Javascript
情人节专属 纯js脚本1k大小的3D玫瑰效果
2012/02/11 Javascript
DOM基础教程之使用DOM控制表格
2015/01/20 Javascript
JavaScript数组随机排列实现随机洗牌功能
2015/03/19 Javascript
jQuery实现鼠标双击Table单元格变成文本框及输入内容后更新到数据库的方法
2015/11/25 Javascript
浅析2种JavaScript继承方式
2015/12/04 Javascript
JS检测是否可以访问公网服务器功能代码
2017/06/19 Javascript
JS实现自定义状态栏动画文字效果示例
2017/10/12 Javascript
JavaScript模板引擎实现原理实例详解
2018/12/14 Javascript
原生js实现可兼容PC和移动端的拖动滑块功能详解【测试可用】
2019/08/15 Javascript
JS Generator 函数的含义与用法实例总结
2020/04/08 Javascript
Python探索之创建二叉树
2017/10/25 Python
使用pytorch搭建AlexNet操作(微调预训练模型及手动搭建)
2020/01/18 Python
基于梯度爆炸的解决方法:clip gradient
2020/02/04 Python
Python装饰器实现方法及应用场景详解
2020/03/26 Python
详解Django配置JWT认证方式
2020/05/09 Python
解决python 执行sql语句时所传参数含有单引号的问题
2020/06/06 Python
Ticketmaster意大利:音乐会、节日、艺术和剧院的官方门票
2019/12/23 全球购物
Linux上比较文件的命令都有哪些
2013/09/28 面试题
最新党员思想汇报
2014/01/01 职场文书
仓管岗位职责范本
2014/02/08 职场文书
完整版商业计划书
2014/09/15 职场文书
初三英语教学计划
2015/01/23 职场文书
社区重阳节活动总结
2015/03/24 职场文书
毕业生学校组织意见
2015/06/04 职场文书
2016年暑期教师培训心得体会
2016/01/09 职场文书
工作汇报材料难写?方法都在这里了!
2019/07/01 职场文书
python中sys模块的介绍与实例
2021/04/17 Python
win sever 2022如何占用操作主机角色
2022/06/25 Servers