安装和使用Xhprof

本文发布时间: 2019-Mar-22
安装xhprof(如果有错误,要make clean,重新编译)1 下载xhprof#wget (去官网下载,我没从官网下载,放到yii里就各种不能用,后来重新编译了就好了,如果进行不下去的时候又找不到原因,可以重新编译一下)#tar zxf xx.gz(下下来的文件)2 cd xhprofcd extension/usr/local/php/bin/phpize(用自己环境里的phpize路径)./configure --enable-xhprof --with-php-config=/usr/local/php/bin/php-config(你自己环境的php-config路径,路径错了安装肯定失败)make && make install(如果有报错,记得先make clean 再做重新编译,如果还是不行,就得换个版本重新编译了,这个地方我试了好几遍才成功比较郁闷)3 新建文件/usr/local/etc/php/php.d/xhprof.ini(或者在php.ini最后加上,都行)内容:extension=xhprof.so;xhprof.output_dir=/data/logs/Appstore/Xhprof/4 打开phpinfo() 查看扩展是否加上(如果没有,重新编译,直到成功为止)如果不需要显示图,到现在就可以用了,自己建一个xhprof的域名,然后到example里的sample.php里进行测试就行了如果需要显示图,那接着往下走安装png(确认线上是否有libpng扩展,如果有就不需要安装了)1 wget http://nchc.dl.sourceforge.net/project/libpng/libpng15/1.5.1/libpng-1.5.1.tar.gz2 tar zxf libpng-1.5.1.tar.gz3 cd libpng-1.5.14 ./configure --with-php-config=/usr/local/php/bin/php-config5 make6 make install安装完以后开始装Graphviz安装Graphviz1 wget http://www.graphviz.org/pub/graphviz/stable/SOURCES/graphviz-2.24.0.tar.gz2 tar zxf graphviz-2.24.0.tar.gz3 cd graphviz-2.24.04./configure --with-php-config=/usr/local/php/bin/php-config --with-png=yes5 make6 make install完成以后如果生成/usr/bin/dot则成功这时候你会发现图还是显示不出来,提示dot - png fail,是说他找不到dot的路径,到你的xhprof/xhprof_lib/utils/callgraph_utils.php 里的dot路径为/usr/bin/dot(你自己生成的dot地址)这时候图基本上就出来了见下面的图,是不是很壮观,出来的时候成就感爆棚下面说怎么融合到你自己的代码里面去在分析时跳过内置函数 xhprof_enable(XHPROF_FLAGS_MEMORY ,array('ignored_functions' => array('call_user_func','call_user_func_array')));使用机制:我是自己封装了个类,也可以直接用在函数的开头调用类以后会在你的xhprof.output_dir里生成一个文件在/data/logs/Appstore/Xhprof/下会生成比如54a3a2606e75b.top-size-10-page-1-list.json.xhprof的文件,如果 $run_id = $xhprofRuns->save_run($xhprofData, $name); 这个name默认是xhprof_foo,如果你想在生成的文件里直接看到是哪个接口生成的解析文件,可以在这块指定name,我是这样做的$name = str_replace('/', '-', $_SERVER['REQUEST_URI']);$name = substr($name, 1);$xhprofRuns = new XHProfRuns_Default();$run_id = $xhprofRuns->save_run($xhprofData, $name);然后根据你自己配置的域名就可以看效果了,比如访问http://xxx/xhprof_html/index.php?run=54a3a2606e75b&source=top-size-10-page-1-list.json(这块的source是你自己定义的name,如果没定义,就不用改,如果不改,会看不到内容)就可以看到了点view full callgraph就可以点击图片看细节了,比较清晰明了http://xxx/xhprof_html/callgraph.php?run=54a3a2606e75b&source=top-size-10-page-1-list.json


(以上内容不代表本站观点。)
---------------------------------
本网站以及域名有仲裁协议。
本網站以及域名有仲裁協議。

2024-Mar-04 02:09pm
栏目列表