HProf是facebook开源出来的一个PHP轻量级的性能分析工具,跟Xdebug类似,但性能开销更低,还可以用在生产环境中,也可以由程序开关来控制是否进行profile。基于浏览
器的性能分析用户界面能更容易查看,或是与同行们分享成果。也能绘制调用关系图。在数据收集阶段,它记录调用次数的追踪和包容性的指标弧在动态callgraph的一个程序。
它独有的数据计算的报告/后处理阶段。在数据收集时,XHProfd通过检测循环来处理递归的函数调用,并通过给递归调用中每个深度的调用一个有用的命名来避开死循环。
XHProf的轻量级性质和汇聚功能,使得它非常适合用于收集“生产环境”的性能统计数据的统计。
1. 安装XHProf
2. 配置 php.ini 文件
重启服务让修改生效,现在就可以使用XHProf了,不过为了显示效果更炫,最好继续安装Graphviz。
3. 安装Graphviz
4. 应用XHProf
/******程序逻辑 Start******/ function test1(){ sleep(3); return; } function test2(){ test1(); } function test3(){ test2(); } function p(){ echo '
xhprof test
'; } 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 '
';
echo 'view the performance report:';
如此一来,会在上面设定的xhprof.output_dir目录里生成名字类似4c236583ef490.xhprof_test的数据文件,可以很方便的通过Web方式浏览效果: