Home >php教程 >php手册 >php性能监控扩展xhprof

php性能监控扩展xhprof

WBOY
WBOYOriginal
2016-06-13 09:39:551341browse

XHProf是facebook开源出来的一个php轻量级的性能分析工具,跟Xdebug类似,但性能开销更低,还可以用在生产环境中,也可以由程序开 关来控制是否进行profile。总体来说是个不错的工具,下面介绍下在ubuntu下的安装及使用过程。

安装xhprof:

wget http://pecl.php.net/get/xhprof-0.9.2.tgz

tar zxf xhprof-0.9.2.tgz
cd xhprof-0.9.2/extension/
sudo phpize
./configure --with-php-config=/usr/local/php/bin/php-config
sudo make
sudo make install

  

为了使用图形方式查看调试结果,还必须安装graphviz这个工具,在ubuntu下你可以直接使用apt-get的方式安装,命令为:sudo apt-get install graphviz,如果是其他系统,那得曲折点,命令如下:

wget http:<span //</span><span www.graphviz.org/pub/graphviz/stable/SOURCES/graphviz-2.24.0.tar.gz</span>
tar zxf graphviz-<span 2.24</span>.<span 0</span><span .tar.gz
cd graphviz</span>-<span 2.24</span>.<span 0</span><span 
.</span>/<span configure
make </span>&& make install

 


配置 php.ini

在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=
xhprof.output_dir=/tmp/xhprof
注:如果是64位系统需要将xhprof.so文件拷贝到相关的lib目录下(lib64)

修改之后重启下apache,看下phpinfo,应该有xhprof的相关信息了吧。

将代码加入到要测试的php当中

<?pho
// cpu:XHPROF_FLAGS_CPU 内存:XHPROF_FLAGS_MEMORY
// 如果两个一起:XHPROF_FLAGS_CPU + XHPROF_FLAGS_MEMORY
xhprof_enable(XHPROF_FLAGS_CPU + XHPROF_FLAGS_MEMORY);

// 要测试的php代码

$data = xhprof_disable(); //返回运行数据

// xhprof_lib在下载的包里存在这个目录,记得将目录包含到运行的php代码中
include_once "xhprof_lib/utils/xhprof_lib.php";
include_once "xhprof_lib/utils/xhprof_runs.php";

$objXhprofRun = new XHProfRuns_Default();

// 第一个参数j是xhprof_disable()函数返回的运行信息
// 第二个参数是自定义的命名空间字符串(任意字符串),
// 返回运行ID,用这个ID查看相关的运行结果
$run_id = $objXhprofRun->save_run($data, "xhprof");
var_dump($run_id);
查看运行结果

  

将xhprof_lib&&xhprof_html相关目录copy到可以访问到的地址

访问 xxx/xhprof_html/index.php?run=$run_id就可经看到你的php代码运行的相关情况,其中$run_id就是上面页面中输出的内容,记得一定要包含

xhprof_lib下的两个文件,如果不想通过这个方式的话也可以直接输出相关的打印信息,即直接print_r出上面的$data的值。

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Previous article:PHP会话控制Next article:php顺序查找和二分查找