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入门教程 精简版
Dec 13 PHP
Smarty Foreach 使用说明
Mar 23 PHP
php中设置index.php文件为只读的方法
Feb 06 PHP
解析PHP计算页面执行时间的实现代码
Jun 18 PHP
PHP图片等比例缩放生成缩略图函数分享
Jun 10 PHP
Linux下手动编译安装PHP扩展的例子分享
Jul 15 PHP
ThinkPHP独立分组使用的注意事项
Nov 25 PHP
php实现文件管理与基础功能操作
Mar 21 PHP
PHP+MariaDB数据库操作基本技巧备忘总结
May 21 PHP
php+mysql开发的最简单在线题库(在线做题系统)完整案例
Mar 30 PHP
php 下 html5 XHR2 + FormData + File API 上传文件操作实例分析
Feb 28 PHP
discuz论坛更换域名,详细文件修改步骤
Dec 09 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
ASP和PHP都是可以删除自身的
2007/04/09 PHP
php+ajax做仿百度搜索下拉自动提示框(有实例)
2012/08/21 PHP
PHP实现格式化文件数据大小显示的方法
2015/01/03 PHP
php数组生成html下拉列表的方法
2015/07/20 PHP
PHP7.0安装笔记整理
2015/08/28 PHP
Zend Framework教程之Zend_Helpers动作助手ViewRenderer用法详解
2016/07/20 PHP
PHP设计模式之单例模式原理与实现方法分析
2018/04/25 PHP
利用PHP内置SERVER开启web服务(本地开发使用)
2020/01/22 PHP
JavaScript DOM 添加事件
2009/02/14 Javascript
js 居中漂浮广告
2010/03/21 Javascript
js 获取坐标 通过JS得到当前焦点(鼠标)的坐标属性
2013/01/04 Javascript
js设置组合快捷键/tabindex功能的方法
2013/11/21 Javascript
使用javascript为网页增加夜间模式
2014/01/26 Javascript
jquery中 $.expr使用实例介绍
2014/06/09 Javascript
JS实现横向与竖向两个选项卡Tab联动的方法
2015/09/27 Javascript
实例讲解避免javascript冲突的方法
2016/01/03 Javascript
JS触摸屏网页版仿app弹窗型滚动列表选择器/日期选择器
2016/10/30 Javascript
el表达式 写入bootstrap表格数据页面的实例代码
2017/01/11 Javascript
jQuery布局组件EasyUI Layout使用方法详解
2017/02/28 Javascript
JS实现仿UC浏览器前进后退效果的实例代码
2017/07/17 Javascript
详解关于Vue2.0路由开启keep-alive时需要注意的地方
2018/09/18 Javascript
基于React Native 0.52实现轮播图效果
2020/08/25 Javascript
解决vue更新路由router-view复用组件内容不刷新的问题
2019/11/04 Javascript
angular8和ngrx8结合使用的步骤介绍
2019/12/01 Javascript
深入理解Python中变量赋值的问题
2017/01/12 Python
理想高通滤波实现Python opencv示例
2019/01/30 Python
基于python实现自动化办公学习笔记(CSV、word、Excel、PPT)
2019/08/06 Python
浅析pandas 数据结构中的DataFrame
2019/10/12 Python
利用python实现PSO算法优化二元函数
2019/11/13 Python
Django自关联实现多级联动查询实例
2020/05/19 Python
HTML5 canvas画图并保存成图片的jcanvas插件
2014/01/17 HTML / CSS
移动端html5 meta标签的神奇功效
2016/01/06 HTML / CSS
Yves Rocher伊夫·黎雪美国官网:法国始创植物美肌1959
2019/01/09 全球购物
自荐书范文范例
2014/02/13 职场文书
对外汉语专业大学生职业生涯规划范文
2014/09/13 职场文书
意外伤害赔偿协议书范文
2014/09/23 职场文书