当前位置: 首页 > 后端技术 > PHP

xhprof使用介绍

时间:2023-03-29 17:15:20 PHP

XHProf是一个层次化的PHP性能分析工具。XHProf是一个分层的PHP分析工具。它报告函数级别的请求计数和各种指标,包括阻塞时间、CPU时间和内存使用情况。函数的成本可以细分为调用者的成本和被调用者的成本。XHProf数据收集阶段记录动态调用图中程序的调用次数和包含索引弧。其独特的数据计算报告/后处理阶段。在数据收集过程中,XHProfd通过检测循环来处理递归函数调用,并通过为递归调用中的每个深度调用赋予一个有用的名称来避免无限循环。XHProf分析报告有助于理解执行代码的结构,它有一个简单的HTML用户界面(用PHP编写)。基于浏览器的性能分析用户界面使查看结果或与同事共享结果变得更加容易。也可以绘制调用图。(摘自百度百科)前提是我的PHP版本是PHP7:而xhprof支持PHP7库,请到longxinH-xhprof查看。备注:之前在phacility中clone过,但是安装失败。原因是我的PHP版本是PHP7,phacility版本不支持。(矿坑呢~~)安装步骤当做php工程处理!你决定把别人的php代码放到clone哪个目录下1.编译安装cd/Users/birjemin/Developer/Phpgitclonehttps://github.com/longxinH/xhprofcdxhprof/extensionphpize./configuremakemakeinstall2.配置文件cd/usr/local在/etc/php/7.0/conf.dvim中添加内容ext-xhprof.ini(这是编译成功后的路径,见上图)[xhprof]extension="/usr/local/Cellar/php70/7.0.14_7/lib/php/extensions/no-debug-non-zts-20151012/xhprof.so"3.重启php-fpm(看个人重启方式,我的重启方式是这样的)cd/usr/local/etc/php/7.0/sudokillallphp-fpmsudo/usr/local/Cellar/php70/7.0.14_7/sbin/php-fpm-D4.检查是否安装成功恭喜安装成功!步骤1.如何使用?两种方法,第一种是将xhprof_lib.php和xhprof_runs.php复制到项目中,第二种是用绝对路径导入这两个文件,推荐第一种,这样你别人克隆的项目就不用做什么了.2.创建两个使能函数(isDev()表示判断本地环境,请酌情删除)php可以复制到项目中,请确保include_once足以加载这两个文件)。functiondisableXhprof(){if(isDev()){$xhprof_data=xhprof_disable();include_onceapp_path()。“/xhprof_lib.php”;include_onceapp_path()。“/xhprof_runs.php”;$xhprof_runs=new\XHProfRuns_Default();$run_id=$xhprof_runs->save_run($xhprof_data,"xhprof_foo");#echo$run_id;}}3.可以在需要监控的界面中的代码片段前加上enableXhprof(),再加上disableXhprof()即可。接下来,我们就可以分析这段代码了。(请保证这两个函数是全局可访问的)4.为克隆的xprof配置虚拟主机,和你的项目一样,所以把xprof当成一个项目,配置成浏览器可以访问。比如我的配置:host:127.0.0.1local.xhprof.comnginxserverconfserver{listen80;服务器名称local.xhprof.com;access_loglogs/xhprof.access.logmain;自动索引;location/{root/Users/birjemin/Developer/Php/xhprof;indexindex.htmlindex.htmindex.php;try_files$uri$uri//index.php?$query_string;}location~\.php${root/Users/birjemin/Developer/Php/xhprof;fastcgi_pass127.0.0.1:9000;fastcgi_indexindex.php;fastcgi_paramSCRIPT_FILENAME$document_root$fastcgi_script_name;fastcgi_intercept_errors开启;包括fastcgi_params;?您无法使用浏览器访问该目录吗??权限没有开启。。自己配置)6.在postman或者浏览器访问界面,翻来翻去,然后就可以到http://local.xhprof.com/xhprof_html/viewed了。(我不会截图..下次再说xgui的使用)遇到的问题1.php-v的版本和phpinfo()的版本不一致,如下图:解决方法:更改phpcli的默认版本我用的是bashvim.bash_profile添加两行#php-vexportPATH="/usr/local/Cellar/php70/7.0.14_7/bin:$PATH"生效source.bash_profile2.编译成功,但是php-m没有xhprof.请到longxinH-xhprof查看支持PHP7的xhprof库!!!!备注整个过程用了2.5个小时~~~不过文章也写了2.5个小时。哈哈哈哈~这玩意跟xdebug不一样。这是为了分析性能瓶颈并允许您优化代码。xdebug主要是用来调试的,下次我会写一个xdebug的安装过程。参考https://www.jianshu.com/p/38e3ae81970chttps://juejin.im/post/5860d23f128fe10069e1cfbfhttp://blog.csdn.net/qq_28602957/article/details/72697901https://baike.baidu.com/item/xhprof/2513363?fr=阿拉丁

最新推荐
猜你喜欢