xhprof 的基本使用

来源:互联网 发布:radio button value js 编辑:程序博客网 时间:2024/04/29 21:11

编译安装:

# wget http://pecl.php.net/get/xhprof-0.9.4.tgz

# tar -zxvf xhprof-0.9.4.tgz

# cd xhprof-0.9.4

# phpize

# ./configure --with-php-config=/path/to/php-config

# make && make install && make test


修改 php.ini 

[xhprof]

extension=xhprof.so

xhprof.output_dir=/path/to/dir # 可选的配置


参考文档:

http://web.archive.org/web/20110514095512/http://mirror.facebook.net/facebook/xhprof/doc.html


代码样例:

<?php 

function bar($x) {

  if ($x > 0) {

    bar($x - 1);

  }

}

function foo() {

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

    bar($idx);

    $x = strlen("abc");

  }

}

// XHPROF_FLAGS_CPU(统计CPU数据)

// XHPROF_FLAGS_MEMORY(统计内存占用数据)

// XHPROF_FLAGS_NO_BUILTINS(跳过内置函数的分析)

// 提供参数2: array('ignored_functions'=>array('func1','func2',...)) 忽略分析某些函数

xhprof_enable(XHPROF_FLAGS_CPU + XHPROF_FLAGS_MEMORY);

//此处是要分析的代码

foo();

$xhprof_data = xhprof_disable();

print_r($xhprof_data);exit;


// 调用自动的图形分析工具

$XHPROF_ROOT = "./xhprof";

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_testing");

// 访问该 URL 查看图形化的分析数据

echo "http://localhost/xhprof/xhprof_html/index.php?run={$run_id}&source=xhprof_testing";


结果分析:

$xhprof_data 分析

Array

(

    [foo==>bar] => Array

        (

            [ct] => 2        # number of calls to bar() from foo()

            [wt] => 37       # time in bar() when called from foo()

            [cpu] => 0       # cpu time in bar() when called from foo()

            [mu] => 2208     # change in PHP memory usage in bar() when called from foo()

            [pmu] => 0       # change in PHP peak memory usage in bar() when called from foo()

        )

    [foo==>strlen] => Array

        (

            [ct] => 2

            [wt] => 3

            [cpu] => 0

            [mu] => 624

            [pmu] => 0

        )

    [bar==>bar@1] => Array    # a recursive call to bar()

        (

            [ct] => 1

            [wt] => 2

            [cpu] => 0

            [mu] => 856

            [pmu] => 0

        )

    [main()==>foo] => Array

        (

            [ct] => 1

            [wt] => 104

            [cpu] => 0

            [mu] => 4168

            [pmu] => 0

        )

    [main()==>xhprof_disable] => Array

        (

            [ct] => 1

            [wt] => 1

            [cpu] => 0

            [mu] => 344

            [pmu] => 0

        )

    [main()] => Array

        (

            [ct] => 1

            [wt] => 139

            [cpu] => 0

            [mu] => 5936

            [pmu] => 0

        )

)

0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 车管所50选一没看中的号码怎么办 长沙芙蓉区电动车被交警扣了怎么办 驾照正在考的时候住址变了怎么办 身份证到期了驾驶证上的号码怎么办 小车占道跟大车刮交警怎么办 邻居把消防栓的位置占用了怎么办 查环保要停业整改一个月怎么办 抽油烟机管道公共排烟道漏烟怎么办 深圳龙华电动车被交警扣了怎么办 英国平邮寄到中国丢件怎么办 安卓app与设备不兼容怎么办 手机卡坏了收不到快递短信怎么办 pph手术后钛钉没有脱落怎么办 右侧附件囊状透明声可怎么办 刚刚出生小孩睾丸没有掉下来怎么办 汽车被依非法营运之由扣押怎么办 老婆结婚小孩两个又上夜场该怎么办 对于不断无理要求赔偿的房东怎么办 欠的钱越来越多不知道怎么办了 手机壳的开机按键不好按怎么办 对方把保权的房子卖给我怎么办 内存卡在手机上显示损坏怎么办 内存卡显示但是下载不了东西怎么办 相机sd卡没办法读卡怎么办 尼康相机新sd卡显示满了怎么办 修冰箱没几个月又坏了怎么办 星露谷物语活动中心成了仓库怎么办 你家如果油锅起火时应该怎么办 当你遇到电器起火时应该怎么办 酷派大神f2充不进去电怎么办 借车子别人开违章一年了怎么办 快递刚发货我点错了收货怎么办 快递收货地址错了已经发货了怎么办 老公在外地工地上夜班吃不好怎么办 工人在工地干活被吊车撞了怎么办 小米手机记不得保密柜密码怎么办 华为手机文件保密柜密码忘了怎么办 超市寄存柜密码纸丢了怎么办 佳明软件安装不到手机上怎么办 最好的朋友的抢了自己的活怎么办 支付宝被实名验证上限了怎么办