xhprof是facebook做的一个开源检测PHP执行性能的程序,帮你分析程序中到底是哪里耗时,个人觉得挺有用的。

编译安装

依次执行如下指令:

wget http://pecl.php.net/get/xhprof-0.9.2.tgz tar zxf xhprof-0.9.2.tgz cd xhprof-0.9.2/extension/ /usr/local/webserver/php/bin/phpize ./configure --with-php-config=/usr/local/webserver/php/bin/php-config make&&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=\<directory\_for\_storing\_xhprof\_runs\> xhprof.output\_dir=/tmp/xhprof

注:如果是64位系统需要将xhprof.so文件拷贝到相关的lib64的目录下

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

\<?php // 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到可以访问到的地址 访问 http://hostname/xhprof\_html/index.php?run=$run\_id&source=xhprof 就可经看到你的php代码运行的相关情况 下面是一些参数说明 Inclusive Time 包括子函数所有执行时间。 Exclusive Time/Self Time 函数执行本身花费的时间,不包括子树执行时间。 Wall Time 花去了的时间或挂钟时间。 CPU Time 用户耗的时间+内核耗的时间 Inclusive CPU 包括子函数一起所占用的CPU Exclusive CPU 函数自身所占用的CPU 注: 需要使用ctype这个扩展