>백엔드 개발 >PHP 튜토리얼 >PHP性能分析工具XHProf装配使用教程

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

WBOY
WBOY원래의
2016-06-13 12:19:561077검색

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>'; 



성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.