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 相关文章推荐
支持oicq头像的留言簿(二)
Oct 09 PHP
PHP新手上路(七)
Oct 09 PHP
hadoop中一些常用的命令介绍
Jun 19 PHP
php计算数组不为空元素个数的方法
Jan 27 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(十四)
Jun 26 PHP
php面向对象中static静态属性与方法的内存位置分析
Feb 08 PHP
使用图灵api创建微信聊天机器人
Jul 23 PHP
PHP简单实现生成txt文件到指定目录的方法
Apr 25 PHP
thinkphp项目如何自定义微信分享描述内容
Feb 20 PHP
PHP策略模式定义与用法示例
Jul 27 PHP
PHP5.6.8连接SQL Server 2008 R2数据库常用技巧分析总结
May 06 PHP
PhpStorm2020.1 安装 debug - Postman 调用的详细教程
Aug 17 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
apache中为php 设置虚拟目录
2014/12/17 PHP
服务器上配置PHP运行环境教程
2015/02/12 PHP
PHP+Ajax实现无刷新分页实例详解(附demo源码下载)
2016/04/07 PHP
如何优雅的使用 laravel 的 validator验证方法
2018/11/11 PHP
jQuery 核心函数以及jQuery对象
2010/03/23 Javascript
JavaScript 的继承
2011/10/01 Javascript
offsetHeight在OnLoad中获取为0的现象
2013/07/22 Javascript
JavaScript中的依赖注入详解
2015/03/18 Javascript
基于JavaScript的操作系统你听说过吗?
2016/01/28 Javascript
JavaScript数据结构与算法之栈与队列
2016/01/29 Javascript
bootstrap jquery dataTable 异步ajax刷新表格数据的实现方法
2017/02/10 Javascript
React中jquery引用的实现方法
2017/09/12 jQuery
vue 数组和对象不能直接赋值情况和解决方法(推荐)
2017/10/25 Javascript
微信小程序自定义带价格显示日历效果
2018/12/29 Javascript
利用vue重构有赞商城的思路以及总结整理
2019/02/21 Javascript
微信小程序学习笔记之函数定义、页面渲染图文详解
2019/03/28 Javascript
vue elementUI table 自定义表头和行合并的实例代码
2019/05/22 Javascript
Django中对数据查询结果进行排序的方法
2015/07/17 Python
python爬虫爬取快手视频多线程下载功能
2018/02/28 Python
python装饰器深入学习
2018/04/06 Python
TensorFlow的环境配置与安装教程详解(win10+GeForce GTX1060+CUDA 9.0+cuDNN7.3+tensorflow-gpu 1.12.0+python3.5.5)
2020/06/22 Python
加拿大建筑和装修专家:Reno-Depot
2017/12/21 全球购物
加拿大时尚床上用品零售商:QE Home | Quilts Etc
2018/01/22 全球购物
纬创Java面试题笔试题
2014/10/02 面试题
一套.net面试题及答案
2016/11/02 面试题
高级技校毕业生自荐信
2013/11/18 职场文书
结婚喜宴家长答谢词
2014/01/15 职场文书
元旦活动感言
2014/03/08 职场文书
励志演讲稿大全
2014/08/21 职场文书
婚内房产协议书范本
2014/10/02 职场文书
2015年八一建军节演讲稿
2015/03/19 职场文书
责任书范本大全
2015/05/11 职场文书
2015年校务公开工作总结
2015/05/26 职场文书
2016感恩父亲节主题广播稿
2015/12/18 职场文书
canvas多重阴影发光效果实现
2021/04/20 Javascript
Java 垃圾回收超详细讲解记忆集和卡表
2022/04/08 Java/Android