Chinaunix首页 | 论坛 | 博客
  • 博客访问: 141752
  • 博文数量: 21
  • 博客积分: 709
  • 博客等级: 上士
  • 技术积分: 255
  • 用 户 组: 普通用户
  • 注册时间: 2005-04-19 22:23
个人简介

凤飞飞

文章分类

全部博文(21)

文章存档

2012年(3)

2011年(17)

2005年(1)

我的朋友

分类: 系统运维

2011-08-02 16:48:01

XHProf是facebook开源出来的一个php轻量级的性能分析工具,跟Xdebug类似,但性能开销更低,还可以用在生产环境中,也可以由程序开 关来控制是否进行profile。

以下是记录和总结:
  1. 安装xhprof:
  2. wget
  3. tar zxf xhprof-0.9.2.tgz
  4. cd xhprof-0.9.2
  5. cp -r xhprof_html xhprof_lib /www/
  6. cd extension/
  7. /usr/local/webserver/php/bin/phpize
  8. ./configure –with-php-config=/usr/local/webserver/php/bin/php-config
  9. make && make install

  1. 安装完提示:
  2. Installing shared extensions: /usr/local/webserver/php/lib/php/extensions/no-debug-non-zts-20060613/

  1. php.ini中添加
  2. extension_dir = "/usr/local/webserver/php/lib/php/extensions/no-debug-non-zts-20060613/"
  3. 这句我原来就有了,就这用添加下面两句
  4. extension=xhprof.so
  5. xhprof.output_dir=/www/logs/xhprof

  6. 分析日志输出在/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
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/';
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 '统计';
}

运行程序,底部出现统计字样,点过去就可以看到性能分析了。按运行时间排序,很容易找出化时间最长的函数。
点[View Full Callgraph]图形化显示,最大的性能问题会用红色标出,其次是黄色,很明显。


官方文档:


阅读(1440) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~