Xhprof分析及xdebug性能优化
来自技术开发小组内部wiki
安装
pecl install xhprof-beta
$ wget https://github.com/facebook/xhprof/tarball/master -O xhprof.tar.gz $ tar zxf xhprof.tar.gz $ cd facebook-xhprof-b8c76ac/extension/ # phpize # ./configure --with-php-config=`/path/to/php-config` # make && make install # make test
配置
修改php.ini
extension = xhprof.so ;可以dl 动态加载 ; 注意:output_dir 必须存在且可写 xhprof.output_dir = /tmp/xhprof ;ini_set('xhprof.output_dir',$path)
调试使用
//调用开始 可以从程序的某个部分开始,不必执着于入口 xhprof_enable(XHPROF_FLAGS_MEMORY | XHPROF_FLAGS_CPU); //调用结束 ,在期望的地方结束,不必是结尾 $xhprof_data = xhprof_disable(); //生成文件url并浏览
参数说明
Total Incl. Wall Time (microsec): 67,266 microsecs 花费的时间 0.67 Total Incl. CPU (microsecs): 66,989 microsecs 花费的 CPU 时间 0.66989 Total Incl. MemUse (bytes): 7,255,144 bytes 内存使用 7.25M Total Incl. PeakMemUse (bytes): 7,419,888 bytes 内存峰值 7.42M Number of Function Calls: 3,417 函数调用 3417次
funciton name : 函数名 calls: 调用次数 Incl. Wall Time (microsec): 函数运行时间(包括子函数) IWall%:函数运行时间(包括子函数)占比 Excl. Wall Time(microsec):函数运行时间(不包括子函数) EWall%:函数运行时间(不包括子函数)
父母帮调试
//替换 /home/www/fmb.phplib/iniconfig/global.php $forceXprof=0 ==> $forceXprof=1 $forceXprof=1; //高级用法 if($_COOKIE['xxx']){ $forceXprof=1; } if($_GET['xxx']){ $forceXprof=1; }
快速优化查看
http://xprof.fumubang.net/ #搜索 #指定域名 #指定路径 #查看调用耗时
demo例子
http://xprof.fumubang.net/xprof/xhprof_html/?run=439&source=xhprof_foo