>  기사  >  php教程  >  xhprof给你的PHP程序做个Profiler

xhprof给你的PHP程序做个Profiler

WBOY
WBOY원래의
2016-06-06 20:07:25892검색

xhprof是Fackbook开源的一个PHP代码“跟踪”程序,可以生成php程序的“函数”调用关系图,以及各个“函数”调用的次数及花费的时间。 当下,xhprof已经入住PHP的PECL库,可以能过pecl install xhprof安装(可能会提示你需要使用带版本号的名字,比如pecl ins

xhprof是Fackbook开源的一个PHP代码“跟踪”程序,可以生成php程序的“函数”调用关系图,以及各个“函数”调用的次数及花费的时间。

当下,xhprof已经入住PHP的PECL库,可以能过pecl install xhprof安装(可能会提示你需要使用带版本号的名字,比如pecl install xhprof-0.9.2)。

也可以下载源代码编译安装(其实与使得pecl安装效果是一样的)。

当使用php 5.4时,安装xhprof可能会遇到麻烦,详情见这个bug公告:https://bugs.php.net/bug.php?id=61674,为xhprof-0.9.2打上补丁即可编译通过:https://github.com/facebook/xhprof/commit/a6bae51236.diff

下面说xhprof怎么使用。

配置xhprof:
在原php的配置文件加入
[xhprof]
extension=xhprof.so
xhprof.output_dir=’/var/tmp’

/var/tmp目录需要apache运行账号可写。

安装绘图工具graphviz,这个是xhprof调用用来绘图的。

RHEL6上可以使用yum直接安装:yum install graphviz。或者自己编译安装。

为xhprof配置个专用的web访问路径:

比如在/etc/http/conf.d/下建一个xhprof.conf配置文件,内容如下:

Alias /xhprof/ /usr/share/pear/xhprof_html/

Options -indexes
Order allow,deny
Allow from all

使用xhprof:

// 放在程序开始第一行
xhprof_enable();

// 原程序开始

// 原程序结束

// 放在结尾
$xhprof_data = xhprof_disable();

$XHPROF_ROOT = ‘/usr/share/pear/’;
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, “xhprof_foo”);

访问统计结果:

http://www.bsdmap.com/xhprof/index.php?run=$run_id&source=xhprof_foo

其中run_id到xhprof.output_dir设定的目录中查找。

给个例子:

http://www.bsdmap.com/xhprof/index.php?run=502e093694815&source=xhprof_foo

参考:
http://hi.baidu.com/thinkinginlamp/blog/item/f4bd08fa1a03ba9e59ee90fd.html
https://bugs.php.net/bug.php?id=61674

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.