您的位置:首页 > 编程语言 > PHP开发

PHP 性能分析工具XHProf使用

2014-03-24 10:11 411 查看
当php程序逻辑执行很复杂的时候,可能会带来性能上的问题,为了有效的找到影响性能的代码,推荐大家使用PHP新能分析工具XHProf,该工具能有效的分析每段代码的执行情况,非常好用

1、安装配置PHP的扩展XHProf

$ 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

# vi /etc/php.d/xhprof.ini
; 内容为:
extension = xhprof.so
; 注意:output_dir 必须存在且可写
xhprof.output_dir = /tmp/xhpro

然后重启apache服务
# service php-fpm restart 或 service httpd restart


2、使用XHProf

// start profiling
xhprof_enable();

// run program
....

// stop profiler
$xhprof_data = xhprof_disable();

//
// Saving the XHProf run
// using the default implementation of iXHProfRuns.
//
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();

// Save the run under a namespace "xhprof_foo".
//
// **NOTE**:
// By default save_run() will automatically generate a unique
// run id for you. [You can override that behavior by passing
// a run id (optional arg) to the save_run() method instead.]
//
$run_id = $xhprof_runs->save_run($xhprof_data, "xhprof_foo");

echo "---------------\n".
"Assuming you have set up the http based UI for \n".
"XHProf at some address, you can view run at \n".
"http://<xhprof-ui-address>/index.php?run=$run_id&source=xhprof_foo\n".
"---------------\n";

如此一来,会在上面设定的xhprof.output_dir目录里生成名字类似49bafaa3a3f66.xhprof_foo的数据文件,可以很方便的通过Web方式浏览效果:


3、展示输出结果

xhprof
源码包
中提供了
xhprof_html
xhprof_lib
两个文件夹,xhprof_lib是用于
PHP 开发,而xhprof_html用于显示 xhprof 分析结果的 web 界面,访问形式如下
http://<xhprof-ui-address>/index.php?run=49bafaa3a3f66&source=xhprof_foo
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: