为了账号安全,请及时绑定邮箱和手机立即绑定

PHP性能检测扩展——XHProf

标签:
PHP

引言: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]图形化显示,最大的性能问题会用红色标出,其次是黄色,很明显。

点击查看更多内容
1人点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消