php的调试工具XHProf

调试PHP时,XDebug一直很好选择,搭配上Webgrind,可以获得不错的效果,但是很耗资源,CPU一会就到100%了。最近看别人的文章,发现了XHProf,于是体验了一下。感觉很酷,与 XDebug 相比,运行更轻便,表现更易懂。这个软件本是 Facebook 内部的一个应用工具,2009年3月份开源,为PHP的性能监测提供了很好的工具。

安装

#wget http://pecl.php.net/get/xhprof-0.9.2.tgz
一开始wget用不了,报错:Resolving dada… failed: Temporary failure in name resolution.
查明是DNS解析的原因,然后更改 /etc/resolv.conf,问运维,写上正确的IP。
#tar zxf xhprof-0.9.2.tgz
#cd cd xhprof-0.9.2/extension/
#phpize
#./configure –with-php-config=/usr/bin/php-config
#make
#make install
#make test

然后配置 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 = 这里写你要保存xhp生成log的目录

done!!下面测试下

function bar($x){ 

	if ($x --> 0){

		bar($x - 1);

	}

}

function foo() {

	for ($idx = 0; $idx < 2; $idx++) 

	{ 		

		bar($idx); 		

		$x = strlen("abc"); 	

	} 

} 

xhprof_enable(); #start profiling

foo(); #run program

$xhprof_data = xhprof_disable(); #stop profiler

print_r($xhprof_data); #display raw xhprof data for the profiler run

最后返回数组,就表示安装好了。具体哪些值是什么意思先别管,因为下面有UI的配置。会很直观!

使用

首先,为了直观和美观装个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

安装完成后,会生成 /usr/local/bin/dot文件,你应该确保路径在PATH环境变量里,以便XHProf能找到它。然后把上面的PHP测试代码拿过来改改,在最后面,加上几行:

<?php

include_once ("/Data/web/changyou/xhprof_lib/utils/xhprof_lib.php");

include_once ("/Data/web/changyou/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 "---------------".

"Assuming you have set up the http based UI for".

"XHProf at some address, you can view run at".

"http://192.168.5.148/changyou/xhprof_html/index.php?run=$run_id&source=xhprof_foo".

"---------------";

?>

然后,好了,运行那个打印出来的URL,OK啦!
看看效果,如果你安装了Graphviz,还会有华丽的大图噢!

http://www.auu.name/153/index.html

你可能感兴趣的:(调试工具)