xhprof

xhprof是php性能测试利器、是facebook出品,大公司出品的必属精品

截至到我发文章的时候官方xhprof并没有出php7版本的扩展,但是在guthub上有人基于之前的版本做了一个xhprof,全名叫phpng-xhprof,当然还有其他的。用法和官方的扩展一样。

网址: https://github.com/yaoguais/phpng-xhprof
github

如果你的PHP版本是5.*直接用官方的就可以。

官方的扩展带一些lib文件和前端渲染的文件。分别在xhprof_html,xhprof_lib文件夹。

网址:rustjason/xhprof 这个也是xhprof如果你是php7下载这个就不用在去找xhprof_htmlxhprof_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峰值百分比。
Last modification:January 9, 2020
如果觉得我的文章对你有用,请随意赞赏