xhprof 是一款Facebook工程师开发和维护的一款PHP性能分析、调试工具,相较于xdebug要更轻量,更节省资源,强烈推荐大家使用。

1、安装流程

可以使用pecl安装、源码编译,如果网络状况支持pecl安装就用pecl安装吧,这是最简便的安装方法。

(1)  通过pecl安装

pecl install xhprof

结果:

[root@iZ2890x6zisZ ~]# pecl install xhprof
Failed to download pecl/xhprof within preferred state "stable", latest release is version 0.9.4, stability "beta", use "channel://pecl.php.net/xhprof-0.9.4" to install
install failed
[root@iZ2890x6zisZ ~]#

由于xhprof没有稳定版,需要使用“pecl install channel://pecl.php.net/xhprof-0.9.4”安装。

pecl install channel://pecl.php.net/xhprof-0.9.4

安装成功,将以下内容追加到php.ini,重启Apache或者php-fpm(强调是php-fpm而不是nginx)。

extension=xhprof.soxhprof.output_dir="/tmp/xhprof"

(2) 源码编译安装

wget http://pecl.php.net/get/xhprof-0.9.4.tgz
tar -zxvf xhprof-0.9.4.tgz
cd xhprof-0.9.4
cd extension
phpize
./configure --enable-xhprof
make
make test
sudo make install

安装成功后也需要追加以下内容到php.ini中,重启Apache或者php-fpm(强调是php-fpm而不是nginx)。

extension=xhprof.soxhprof.output_dir="/tmp/xhprof"

2.使用过程

如果通过pecl安装的话,还得下载http://pecl.php.net/get/xhprof-0.9.4.tgz,解压后将xhprof_lib和xhprof_html放到项目目录下。

建立个test.php,内容如下

<?php
// cpu:XHPROF_FLAGS_CPU 内存:XHPROF_FLAGS_MEMORY
// 如果两个一起:XHPROF_FLAGS_CPU + XHPROF_FLAGS_MEMORY
xhprof_enable(XHPROF_FLAGS_CPU + XHPROF_FLAGS_MEMORY);//要测试的php代码$data = xhprof_disable();   //返回运行数据// xhprof_lib在下载的包里存在这个目录,记得将目录包含到运行的php代码中
include_once "xhprof_lib/utils/xhprof_lib.php";
include_once "xhprof_lib/utils/xhprof_runs.php";  $objXhprofRun = new XHProfRuns_Default(); // 第一个参数j是xhprof_disable()函数返回的运行信息
// 第二个参数是自定义的命名空间字符串(任意字符串),
// 返回运行ID,用这个ID查看相关的运行结果
$run_id = $objXhprofRun->save_run($data, "xhprof");
var_dump($run_id);

然后访问test.php后复制run_id然后

访问 xxx/xhprof_html/index.php?run=$run_id&source=xhprof 就可经看到你的php代码运行的相关情况

3.进一步了解和使用

通过在需要调试的代码间使用xhprof_enable和xhprof_disable就能获取性能分析的数据。但不够方便也不够灵活。随后看到有博主通过建立head.php和foot.php,然后在相应位置include进去;内容如下:

//head.php
<?php
if(extension_loaded('xhprof')){//载入下载的XHPROF包中的2个文件夹include_once 'xhprof_lib/utils/xhprof_lib.php';include_once 'xhprof_lib/utils/xhprof_runs.php';xhprof_enable(XHPROF_FLAGS_CPU + XHPROF_FLAGS_MEMORY);
}
//foot.php
<?php
if(extension_loaded('xhprof')){$ns = 'myXhprof';//关闭profiler$xhprofData = xhprof_disable();//实例化类$xhprofRuns = new XHProfRuns_Default();$runId = $xhprofRuns->save_run($xhprofData, $ns);//前端展示库的URL$url = 'http://localhost/xhprof_html/index.php';$url .= '?run=%s&source=%s';//变量替换$url = sprintf($url, $runId, $ns);//输入URLecho '<a href="'.$url.'" target="_blank">查看结果</a>';
}

在使用过程中包含即可,如下:

//index.php
<?php
include_once 'head.php';
echo 'Hello World';
include_once 'foot.php';

技巧:如果有大量的文件,这样处理还不够方便,我们可以在php.ini中添加以下配置:

auto_prepend_file = /var/www/head.php
auto_append_file = /var/www/foot.php

或者在.htaccess中添加以下配置:

php_value auto_prepend_file = /var/www/head.php
php_value auto_append_file = /var/www/foot.php

Tips:点击[View Full Callgraph]查看图片的时候报错:failed to execute cmd:" dot -Tpng". stderr:`sh: dot:command not found`。
原因:原因:未安装图形化工具Graphviz

centos :

yum install graphviz

unbutu:

apt-get install graphviz

在yii、thinkphp中使用xhprof_enable(XHPROF_FLAGS_CPU + XHPROF_FLAGS_MEMORY);报502错误。应该修改为以下配置。

xhprof_enable(XHPROF_FLAGS_NO_BUILTINS | XHPROF_FLAGS_CPU | XHPROF_FLAGS_MEMORY);

名词解释:

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://www.xhprof.com/index.php

xhprof 安装与使用相关推荐

  1. XHProf安装使用笔记

    XHProf安装使用笔记 from: http://www.sourcejoy.com/php_dev/xhprof_install_and_usage.html libpng: 先安装... gra ...

  2. php性能测试下载,PHP性能测试工具xhprof安装与使用方法详解

    本文实例分析了PHP性能测试工具xhprof安装与使用方法.分享给大家供大家参考,具体如下: xhprof概述: XHProf是一个分层PHP性能分析工具.它报告函数级别的请求次数和各种指标,包括阻塞 ...

  3. php性能分析工具XHProf安装配置使用教程(linux精华版)

    XHProf是一个分层PHP性能分析工具.它报告函数级别的请求次数和各种指标,包括阻塞时间,CPU时间和内存使用情况.一个函数的开销,可细分成调用者和被调用者的开销,XHProf数据收集阶段,它记录调 ...

  4. linux系统安装xhprof,LNMP部署laravel与xhprof安装使用

    整个过程部署laravel与xhprof安装 前提成功安装了LNMP集成环境 (lnmp.org 即可快速安装),保证network正常运行 首先配置laravel的运行环境 1.上传代码到/home ...

  5. xhprof安装使用【转】

    编译安装 wget http://pecl.php.net/get/xhprof-0.9.3.tgztar zxf xhprof-0.9.2.tgzcd xhprof-0.9.2/extension/ ...

  6. xhprof 安装使用(windows linux混版)

    1.安装扩展 windows下把 xhprof.dll 放到extensions目录下 修改配置文件 [xhprof] extension=xhprof.so; ; directory used by ...

  7. xhprof安装和使用方法(linux版本)

    不对xhprof做介绍,我相信能搜到这篇文章的你一定已经知道了xhprof是干什么的. 安装很简单,先去github上把源代码拉下来,地址在这儿: git@github.com:facebook/xh ...

  8. xhprof安装和使用

    2010年的时候有做过相关的东西,为ECOS框架写了一个相关的APP应用,前段时候要用xhprof来测试一下ECAE上的php的运行效率又重新要安装xhprof 本日志记录下相关的过程,以便以后再次使 ...

  9. xhprof 安装使用

    1.安装扩展 windows下把 xhprof.dll 放到extensions目录下 修改配置文件 [xhprof] extension=xhprof.so; ; directory used by ...

最新文章

  1. 黄冈师范计算机考研,2019年黄冈师范学院计算机基础复试自命题考试大纲
  2. 跨域解决方案之CORS
  3. android 声音,同时播放声音Android
  4. 企业安全建设之浅谈数据防泄露
  5. NFL discussion调研
  6. 使用Degraph管理软件包依赖关系
  7. 图论测试题(一)第一题:longest
  8. 父类对象由子类实例化【转载】
  9. HTML5手机开发——滚动和惯性缓动
  10. 部署Hadoop2.0高性能集群
  11. Win10+caffe+CUDA9.1+vs2013+Matlab2018b+GPU环境,跑通faster_rcnn-master
  12. 大数据技术原理与应用----大数据概述
  13. k8s集群重新将master节点加入集群
  14. Citrix Receiver卸载方法
  15. 设计模式之美总结(创建型篇)
  16. 输入学生学号、成绩,并排序
  17. [CTF]2021长安战疫 WP
  18. 搭建umi框架时出现Error: Error: Plugin umi-plugin-react can't be resolved
  19. Elasticsearch实践(二)在Springboot微服务中集成搜索服务
  20. .NET开源工作流RoadFlow-表单设计-保存与发布

热门文章

  1. 压力测试程序编写C语言,用C++ AMP写一个GPU压力测试程序
  2. 图解java反射机制及常用应用场景
  3. 985计算机报录比高的学校,985/211高报录比院校
  4. 【连载】【FPGA黑金开发板】NIOS II那些事儿--串口实验(六)
  5. Zigbee物联网组网
  6. 第七篇 亚龙236 led 16*32点阵显示显示汉字
  7. web实验一JSP环境配置及开发、运行
  8. 这两种驱蚊成份对宝宝有害,有宝宝的家庭,选购驱蚊产品要注意
  9. “中国十大名校”之争,缘何让百度气急败坏删帖?
  10. ECharts 鼠标滑过显示的数据样式