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 一元分词算法
Nov 30 PHP
初次接触php抽象工厂模式(Elgg)
Mar 21 PHP
php iconv() : Detected an illegal character in input string
Dec 05 PHP
PHP怎么实现网站保存快捷方式方便用户随时浏览
Aug 15 PHP
php MessagePack介绍
Oct 06 PHP
PHP APC缓存配置、使用详解
Mar 06 PHP
PHP实现利用MySQL保存session的方法
Aug 23 PHP
PHP缓存集成库phpFastCache用法
Dec 15 PHP
PHP使用GETDATE获取当前日期时间作为一个关联数组的方法
Mar 19 PHP
PHP实现全角字符转为半角方法汇总
Jul 09 PHP
PHP生成随机密码方法汇总
Aug 27 PHP
如何让PHP编码更加好看利于阅读
May 12 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取得一个类的属性和方法的实现代码
2011/05/22 PHP
PHP防盗链代码实例
2014/08/27 PHP
字符串长度函数strlen和mb_strlen的区别示例介绍
2014/09/09 PHP
php常用hash加密函数
2014/11/22 PHP
PHP addAttribute()函数讲解
2019/02/03 PHP
解决thinkphp5未定义变量会抛出异常,页面错误,请稍后再试的问题
2019/10/16 PHP
[原创]提供复制本站内容时出现,该文章转自脚本之家等字样的js代码
2007/03/27 Javascript
深入理解JavaScript系列(8) S.O.L.I.D五大原则之里氏替换原则LSP
2012/01/15 Javascript
仿百度输入框智能提示的js代码
2013/08/22 Javascript
纯js实现仿QQ邮箱弹出确认框
2015/04/29 Javascript
Backbone.js的一些使用技巧
2015/07/01 Javascript
Javascript之BOM(window对象)详解
2016/05/25 Javascript
JS获取字符串实际长度(包含汉字)的简单方法
2016/08/11 Javascript
JS实现提示效果弹出及延迟隐藏的功能
2019/08/26 Javascript
微信小程序实现点击按钮后修改颜色
2019/12/05 Javascript
node.js中npm包管理工具用法分析
2020/02/14 Javascript
javascript实现简单留言板案例
2021/02/09 Javascript
python单线程实现多个定时器示例
2014/03/30 Python
python单例模式实例分析
2015/04/08 Python
python获取酷狗音乐top500的下载地址 MP3格式
2018/04/17 Python
Python之csv文件从MySQL数据库导入导出的方法
2018/06/21 Python
Python3中内置类型bytes和str用法及byte和string之间各种编码转换 问题
2018/09/27 Python
对python中类的继承与方法重写介绍
2019/01/20 Python
python 去除二维数组/二维列表中的重复行方法
2019/01/23 Python
python七夕浪漫表白源码
2019/04/05 Python
基于Python 中函数的 收集参数 机制
2019/12/21 Python
Java ExcutorService优雅关闭方式解析
2020/05/30 Python
瑞士设计师家具和家居饰品网上商店:Bruno Wickart
2019/03/18 全球购物
Lovedrobe官网:英国领先的大码服装品牌
2019/09/19 全球购物
台湾良兴购物网:EcLife
2019/12/01 全球购物
Vuori官网:运动服装的终级表现
2021/01/27 全球购物
2014年妇产科工作总结
2014/12/08 职场文书
实习介绍信范文
2015/05/05 职场文书
2019年市场部个人述职报告(三篇)
2019/10/23 职场文书
如何获取numpy array前N个最大值
2021/05/14 Python
剑指Offer之Java算法习题精讲二叉树的构造和遍历
2022/03/21 Java/Android