Home >Backend Development >PHP Tutorial >PHP性能分析工具XHProf装配使用教程

PHP性能分析工具XHProf装配使用教程

WBOY
WBOYOriginal
2016-06-13 12:19:561077browse

PHP性能分析工具XHProf安装使用教程
HProf是facebook开源出来的一个php轻量级的性能分析工具,跟Xdebug类似,但性能开销更低,还可以用在生产环境中,也可以由程序开关来控制是否进行profile。基于浏览


器的性能分析用户界面能更容易查看,或是与同行们分享成果。也能绘制调用关系图。在数据收集阶段,它记录调用次数的追踪和包容性的指标弧在动态callgraph的一个程序。


它独有的数据计算的报告/后处理阶段。在数据收集时,XHProfd通过检测循环来处理递归的函数调用,并通过给递归调用中每个深度的调用一个有用的命名来避开死循环。


XHProf的轻量级性质和汇聚功能,使得它非常适合用于收集“生产环境”的性能统计数据的统计。


1. 安装XHProf


wget http://pecl.php.net/get/xhprof-0.9.2.tgztar zxf xhprof-0.9.2.tgzcd xhprof-0.9.2cp -r xhprof_html xhprof_lib <directory_for_htdocs>cd extensionphpize./configuremakemake install</directory_for_htdocs>


 


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></directory_for_storing_xhprof_runs></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  ./configuremake   make install


 


安装完成后,会生成/usr/local/bin/dot文件,你应该确保路径在PATH环境变量里,以便XHProf能找到它。
4. 应用XHProf

//author http://www.lai18.comxhprof_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="'.%24report_url.'" target="_blank">'.$report_url.'</a>'; 



Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn