引言:XHProf是facebook开源出来的一个php轻量级的性能分析工具,跟Xdebug类似,但性能开销更低,还可以用在生产环境中,也可以由程序开 关来控制是否进行profile。      安装xhprof :    wget  http://pecl.php.net/get/xhprof-0.9.2.tgz   tar zxf xhprof-0.9.2.tgz    cd xhprof-0.9.2    cp -r xhprof_html xhprof_lib /www/www.hx.com/xhprof/    cd extension/    /usr/local/webserver/php/bin/phpize    ./configure  –with-php-config=/usr/local/webserver/php/bin/php-config    make && make install    安装完提示:    Installing shared extensions:     /usr/local/webserver/php/lib/php/extensions/no-debug-non-zts-20060613/       php.ini中添加    extension_dir = "/usr/local/webserver/php/lib/php/extensions/no-debug-non-zts-20060613/"    这句我原来就有了,就这用添加下面两句    extension=xhprof.so    xhprof.output_dir=/www/logs/xhprof       分析日志输出在/www/logs/xhprof目录。       重新加载php配置文件和重启web    /usr/local/webserver/php/sbin/php-fpm reload    /usr/local/webserver/nginx/sbin/nginx -s reload       刷新phpinfo页面,看到输出中有了xhprof信息。    xhprof  0.9.2    CPU num  2       安装graphviz ,一个画图工具    wget  http://www.graphviz.org/pub/graphviz/stable/SOURCES/graphviz-2.24.0.tar.gz   tar zxf graphviz-2.24.0.tar.gz    cd graphviz-2.24.0    ./configure    make && make install       程序试例    头部:    xhprof_enable();     //xhprof_enable(XHPROF_FLAGS_NO_BUILTINS); 不记录内置的函数    //xhprof_enable(XHPROF_FLAGS_CPU + XHPROF_FLAGS_MEMORY);  同时分析CPU和Mem的开销    $xhprof_on = true;       我觉得用xhprof_enable();就够用了,只统计运行时间(Wall Time)。       生产环境可使用:    if (mt_rand(1, 10000) == 1) {       xhprof_enable();       $xhprof_on = true;    }       尾部:    if($xhprof_on){    $xhprof_data = xhprof_disable();    $xhprof_root = '/www/www.hx.com/xhprof/';    include_once $xhprof_root."xhprof_lib/utils/xhprof_lib.php";     include_once $xhprof_root."xhprof_lib/utils/xhprof_runs.php";     $xhprof_runs = new XHProfRuns_Default();     $run_id = $xhprof_runs->save_run($xhprof_data, "hx");    echo '<a href=" http://192.168.1.158:858/xhprof/xhprof_html/index.php?run='.$run_id.'&source=hx" target="_blank">统计';    }       运行程序,底部出现统计字样,点过去就可以看到性能分析了。按运行时间排序,很容易找出化时间最长的函数。    点[View Full Callgraph]图形化显示,最大的性能问题会用红色标出,其次是×××,很明显。  
													
    免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。