if (mt_rand(1, 10000) == 1) { //采集请求的万分之一
//xhprof_enable(XHPROF_FLAGS_MEMORY);//生产环境尽量不要统计CPU信息啊
xhprof_enable(XHPROF_FLAGS_CPU+XHPROF_FLAGS_MEMORY);
$xhprof_on = true;
}
foo();
$data = xhprof_disable();
print_r($data);
//导入的这些文件都在下载的xhprof压缩包根目录下
include_once "../xhprof_lib/utils/xhprof_lib.php";
include_once "../xhprof_lib/utils/xhprof_runs.php";
$xhprof_runs = new XHprofRuns_Default();
echo $run_id = $xhprof_runs----->save_run($data, "test");//test类似空间概念
function foo(){
echo 'test';
}
打印数据说明 ct 函数调用次数, wt 花费的时间, cpu 花费的 CPU 时间(微秒即百万分之一秒), mu 使用的内存(bytes), pmu 使用的内存峰值(bytes)。 查看结果: 一)看单一运行报告
要查看run id是和命名空间是的报告,访问URL:
http:///index.php?run=&source=
例如,
http:///index.php?run=49bafaa3a3f66&source=test
二)查看diff报告
要查看命名空间下runid分别是< run_id1>和的两个报告,访问URL:
http:///index.php?run1=&run2=&source=
三)汇总报告
您也可以指定一组run id来汇总得到您想要的报告视图。
如果你有三个XHProf运行,都在”benchmark‘命名空间下,run id分别是1,2,3。要查看这些运行的汇总报告:
http:///index.php?run=1,2,3&source=test
加权汇总 :进一步假设,上述3个运特分别对应三种程序,p1.php,p2.php和p3.php ,通常以20%,30%,50%概率混合:要查看汇总报告所对应的加权平均数这些运行使用:
http:///index.php?run=1,2,3&wts=20,30,50&source=test
数据字段说明 Calls:函数的调用次数 Incl. Wall Time (microsec) :包含内部函数花费的时间,单位微秒 Excl. Wall Time (microsec):不包含内部函数花费的时间,单位微秒 及所占百分比(%)
注:Incl.:为 Including 包含的简写 Excl.:为 Excluding 不包含的简写 Wall Time:任务花费的时间
备注:当然实际生产环境不会每次都会统计,可以采集万分之一的请求,并且生产环境一般不会开启CPU计数信息