日期:2014-05-17  浏览次数:20371 次

Xhprof php性能测试工具用法小结

            Xhprof 是facebook推出的轻量级的php性能分析工具,和Xdebug相比,XHProf更加易用和可控,尤其是生成流程图和调试数据对比的功能很好很强大。  下面简单介绍下Xhprof的安装及使用。

           1、安装

          可以从页面 下载相应版本及了解各个版本依赖条件。 安装前,先假设php的bin目录是:/usr/local/php/bin

[root@localhost extension]# ln -s /usr/local/php/bin/phpize /usr/bin/phpize
[root@localhost tool]# wget http://pecl.php.net/get/xhprof-0.9.2.tgz
[root@localhost tool]# tar -zxvf xhprof-0.9.2.tgz 
[root@localhost tool]# cd xhprof-0.9.2/extension/
[root@localhost tool]# ./configure --with-php-config=/usr/local/php/bin/php-config
[root@localhost tool]# make
[root@localhost tool]# make install

           通过上面的操作,如果运气不是非常糟糕的话,你应该看到类似这样的提示:Installing shared extensions:     /usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/

          进入到php扩展库目录/usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/ ,你将看到xhprof.so 共享库文件。

        2、配置

         在php.ini文件中,添加如下配置:

[xhprof]
extension=xhprof.so;
; directory used by default implementation of the iXHProfRuns
; interface (namely, the XHProfRuns_Default class) for storing
; XHProf runs.
;
;xhprof.output_dir=<directory_for_storing_xhprof_runs>
xhprof.output_dir=/tmp/xhprof

        重启下php,就可以在使用xhprof了。

       3、拷贝文件

       把xhprof-0.9.2目录下的目录xhprof_html 和 xhprof_lib 下的所有文件拷贝到你网站的主目录下,假设网站主目录:/opt/wordpress

[root@localhost xhprof-0.9.2]# cp -R xhprof_* /opt/wordpress

       4、使用

       参考下面的解释说明:

<?php
//cpu: XHPROF_FLAGS_CPU
//内存: XHPROF_FLAGS_MEMORY
//如果都监控用XHPROF_FLAGS_CPU + XHPROF_FLAGS_MEMORY
xhprof_enable(XHPROF_FLAGS_CPU + XHPROF_FLAGS_MEMORY);

//需要性能分析的php代码

//define('WP_USE_THEMES', true);


//require('./wp-blog-header.php');

//停止性能分析
$data = xhprof_disable(); 


//显示性能分析数据
include_once "xhprof_lib/utils/xhprof_lib.php"; 
include_once "xhprof_lib/utils/xhprof_runs.php"; 
$objXhprofRun = new XHProfRuns_Default(); 

//第一个参数 是xhprof_disable()的返回值
//第二个参数 是自定义命名空间字符串 
//返回运行id,用这个id查看相关运行结果
$run_id = $objXhprofRun->save_run($data, "xhprof");
 
//查看运行结果的url
//run的值来源于save_run的返回值
//source值来源于save_run的第二个参数                                 
//www.abc.com 需要用自己的域名替换
echo "http://www.abc.com/xhprof_html/index.php?run=".$run_id."&source=xhprof";

      在浏览器中打开输出的url,及可看到相关的性能信息。