网站性能检测工具 -xhprof

首先来说xhprof是facebook开源出来的一个php轻量级的性能分析工具,跟Xdebug类似,但性能开销更低,还可以用在生产环境中,也可以由程序开 关来控制是否进行profile。

        1.安装

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

tar zxvf xhprof-0.9.4.tgz

cd xhprof-0.9.4/extension/

phpize

./configure --with-php-config=/usr/local/php/bin/php-config

make

make install

(注意上买呢的php-config的具体位置请根据自己服务器的情况而定,如果不确定可以使用 which php-config来查看)

 

2.修改php.ini的配置文件

xtension=xhprof.so

xhprof.outout_dir=/var/tmp/xhprof

3. 图形方式显示配置

如果需要在页面显示,那也很简单,xhprof下面有一个xhprof_html的文件夹,你需要让这个文件夹能够让你的浏览器通过http 服务访问到。我就放在/home/www里面了,这样的话我访问它的路径就是:

http://www.local.com/xhprof_html/index.php

(如果无法显示请检查index.php 中 $GLOBALS['XHPROF_LIB_ROOT'] 的路径配置)


测试代码如下:

#!/usr/bin/php
<?php

function bar($x) {
    if ($x > 0) {
        #bar($x - 1);
    }
}

function foo() {
    for ($idx = 0; $idx < 5; $idx++) {
      bar($idx);
      $x = strlen("abc");
    }
}
xhprof_enable();//加上这个参数可以使得xhprof显示cpu和内存相关的数据。

foo();//把要测量的函数用xhprof_enable和xhprof_disable包围起来。

$xhprof_data = xhprof_disable();

//得到统计数据之后,以下的工作就是为页面显示做准备。
$XHPROF_ROOT = "/home/www/test/xhprof";//这里填写的就是你的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();
$flag = "xhprof_foo";
$run_id = $xhprof_runs->save_run($xhprof_data, $flag);//第二个参数在接下来的地方作为命名空间一样的概念来使用

echo $run_id;
echo $flag;

echo '<a href="http://www.test.com/xhprof/xhprof_html/index.php?run='.$run_id.'&source='.$flag.'" target="_blank">click_me</a>';

参数说明:

Function Name 函数名
 Calls 调用次数
 Calls% 调用百分比
 Incl. Wall Time (microsec) 调用的包括子函数所有花费时间 以微秒算(一百万分之一秒)
 IWall% 调用的包括子函数所有花费时间的百分比
 Excl. Wall Time (microsec) 函数执行本身花费的时间,不包括子树执行时间,以微秒算(一百万分之一秒)
 EWall% 函数执行本身花费的时间的百分比,不包括子树执行时间
 Incl. CPU(microsecs) 调用的包括子函数所有花费的cpu时间。减Incl. Wall Time即为等待cpu的时间
 减Excl. Wall Time即为等待cpu的时间
 ICpu% Incl. CPU(microsecs)的百分比
 Excl. CPU(microsec) 函数执行本身花费的cpu时间,不包括子树执行时间,以微秒算(一百万分之一秒)。
 ECPU% Excl. CPU(microsec)的百分比
 Incl.MemUse(bytes) 包括子函数执行使用的内存。
 IMemUse% Incl.MemUse(bytes)的百分比
 Excl.MemUse(bytes) 函数执行本身内存,以字节算
 EMemUse% Excl.MemUse(bytes)的百分比
 Incl.PeakMemUse(bytes) Incl.MemUse的峰值
 IPeakMemUse% Incl.PeakMemUse(bytes) 的峰值百分比
 Excl.PeakMemUse(bytes) Excl.MemUse的峰值
 EPeakMemUse% EMemUse% 峰值百分比

参考资料:

http://jingyan.baidu.com/article/a948d651646e8e0a2dcd2e36.html

http://www.cnblogs.com/casatwy/archive/2013/01/17/2865241.html









  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值