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 09 PHP
PHP笔记之:日期函数的使用介绍
Apr 24 PHP
使用session判断用户登录用户权限(超简单)
Jun 08 PHP
php数组去重复数据示例
Feb 25 PHP
php调用C代码的实现方法
Mar 11 PHP
php数组合并array_merge()函数使用注意事项
Jun 19 PHP
PHP采用自定义函数实现遍历目录下所有文件的方法
Aug 19 PHP
php中cookie实现二级域名可访问操作的方法
Nov 11 PHP
php自定义加密与解密程序实例
Dec 31 PHP
什么是OneThink oneThink后台添加插件步骤
Apr 13 PHP
php实现博客,论坛图片防盗链的方法
Oct 15 PHP
简单实现php上传文件功能
Sep 21 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代码
2012/07/14 PHP
php自定义错误处理用法实例
2015/03/20 PHP
PHP实现的操作数组类库定义与用法示例
2019/05/24 PHP
jquery调用wcf并展示出数据的方法
2011/07/07 Javascript
jQuery表格排序组件-tablesorter使用示例
2014/05/26 Javascript
node.js中的favicon.ico请求问题处理
2014/12/15 Javascript
深入浅析ES6 Class 中的 super 关键字
2017/10/20 Javascript
Vue拖拽组件开发实例详解
2018/05/11 Javascript
Three.js实现3D机房效果
2018/12/30 Javascript
vue配置nprogress实现页面顶部进度条
2019/09/21 Javascript
Vue.js实现立体计算器
2020/02/22 Javascript
写给新手同学的vuex快速上手指北小结
2020/04/14 Javascript
vue.js实现h5机器人聊天(测试版)
2020/07/16 Javascript
Vue使用Proxy代理后仍无法生效的解决
2020/11/13 Javascript
[00:12]DAC2018 no[o]ne亮相SOLO赛 他是否如他的id一样无人可挡?
2018/04/06 DOTA
python解析html开发库pyquery使用方法
2014/02/07 Python
Python中字典(dict)和列表(list)的排序方法实例
2014/06/16 Python
详解Python中的装饰器、闭包和functools的教程
2015/04/02 Python
在Python中居然可以定义两个同名通参数的函数
2019/01/31 Python
python接口自动化(十七)--Json 数据处理---一次爬坑记(详解)
2019/04/18 Python
Python各种扩展名区别点整理
2020/02/27 Python
python代码实现TSNE降维数据可视化教程
2020/02/28 Python
完美解决pycharm 不显示代码提示问题
2020/06/02 Python
Python对excel的基本操作方法
2021/02/18 Python
CSS3使用border-radius属性制作圆角
2014/12/22 HTML / CSS
使用CSS3的box-sizing属性解决div宽高被内边距撑开的问题
2016/06/28 HTML / CSS
什么是触发器(trigger)? 触发器有什么作用?
2013/09/18 面试题
广州迈达威.net面试题目
2012/03/10 面试题
《巨人的花园》教学反思
2014/02/12 职场文书
2014年五四青年节活动方案
2014/03/29 职场文书
文明市民先进事迹
2014/05/15 职场文书
反四风个人对照检查材料思想汇报
2014/09/25 职场文书
债务追讨律师函
2015/06/24 职场文书
入队仪式主持词
2015/07/04 职场文书
七年级英语教学反思
2016/02/15 职场文书
Js类的构建与继承案例详解
2021/09/15 Javascript