xhprof
xhprof是php性能测试利器、是facebook出品,大公司出品的必属精品
截至到我发文章的时候官方xhprof并没有出php7版本的扩展,但是在guthub上有人基于之前的版本做了一个xhprof,全名叫phpng-xhprof,当然还有其他的。用法和官方的扩展一样。
网址: https://github.com/yaoguais/phpng-xhprof
如果你的PHP版本是5.*直接用官方的就可以。
官方的扩展带一些lib文件和前端渲染的文件。分别在xhprof_html,xhprof_lib文件夹。
网址:rustjason/xhprof 这个也是xhprof如果你是php7下载这个就不用在去找xhprof_html
,xhprof_lib
这两个文件夹了
然后按照以下步骤去做:
cd xhprof/extension
which php-config #记录下php-config的路径,接下来要用。
phpize
./configure --with-php-config=/usr/bin/php-config #此处的地址就是上面你记录下来php-config的地址
make
sudo make install
然后修改配置文件php.ini
[phpng_xhprof]
extension=phpng_xhprof.so
;下面的这个地址是用来保存测量记录的目录,在页面输出测量得到的数据的时候,
;它会自动到这儿来找输出的文件。
xhprof.output_dir=/Volumes/media/tmpTest
PHP使用案例
<?php
//随机关注
xhprof_enable();
你要测试的代码段
$xhprof_data = xhprof_disable();
$XHPROF_ROOT = realpath(dirname(__FILE__) .'/../../../Public/common');
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");
使用的注意事项
我的电脑是mac ,在看视图文件的时候报错:
failed to execute cmd:" dot -Tpng". stderr:sh: dot:command not found。
解决方案:
brew install graphviz /mac系统解决
yum install graphviz /centos 解决
选项介绍
Function Name:方法名称。
Calls:方法被调用的次数。
Calls%:方法调用次数在同级方法总数调用次数中所占的百分比。
Incl.Wall Time(microsec):方法执行花费的时间,包括子方法的执行时间。(单位:微秒)
IWall%:方法执行花费的时间百分比。
Excl. Wall Time(microsec):方法本身执行花费的时间,不包括子方法的执行时间。(单位:微秒)
EWall%:方法本身执行花费的时间百分比。
Incl. CPU(microsecs):方法执行花费的CPU时间,包括子方法的执行时间。(单位:微秒)
ICpu%:方法执行花费的CPU时间百分比。
Excl. CPU(microsec):方法本身执行花费的CPU时间,不包括子方法的执行时间。(单位:微秒)
ECPU%:方法本身执行花费的CPU时间百分比。
Incl.MemUse(bytes):方法执行占用的内存,包括子方法执行占用的内存。(单位:字节)
IMemUse%:方法执行占用的内存百分比。
Excl.MemUse(bytes):方法本身执行占用的内存,不包括子方法执行占用的内存。(单位:字节)
EMemUse%:方法本身执行占用的内存百分比。
Incl.PeakMemUse(bytes):Incl.MemUse峰值。(单位:字节)
IPeakMemUse%:Incl.MemUse峰值百分比。
Excl.PeakMemUse(bytes):Excl.MemUse峰值。单位:(字节)
EPeakMemUse%:Excl.MemUse峰值百分比。