原文地址:http://blog.csdn.net/maitiandaozi/article/details/8896293

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

1.安装XHprof

  1. wget http://pecl.php.net/get/xhprof-0.9.2.tgz
  2. tar zxf xhprof-0.9.2.tgz
  3. cd xhprof-0.9.2
  4. cp -r xhprof_html xhprof_lib /你的web目录路径/xhprof/  (此处目的是建立数据分析目录,可将此目录配置成虚拟主机访问)
  5. cd extension/
  6. /usr/local/webserver/php/bin/phpize
  7. ./configure  –with-php-config=/usr/local/webserver/php/bin/php-config   (php-config的路径)
  8. make && make install

安装完提示:
Installing shared extensions:     /usr/lib/php/extensions/no-debug-non-zts-20060613/

2.php.ini中添加

extension_dir = "/usr/lib/php5/20090626/"
这句我原来就有了,就这用添加下面两句
extension=xhprof.so
xhprof.output_dir=/www/logs/xhprof

分析日志输出在/www/logs/xhprof目录。

3.重启Nginx服务器和php,打开phpinfo()页面便可以看到看到输出中有了xhprof信息。

  1. xhprof  0.9.2
  2. CPU num  2

4.安装libpng包

否则会因为dot 不支持PNG,不能显示图表数据分析,且 出现Error: either we can not find profile data for run_id 4d7f0bd99a12f or the threshold 0.01 is too small or you do not have ‘dot’ image generation utility installed.的错误

  1. wget http://nchc.dl.sourceforge.net/project/libpng/libpng15/1.5.1/libpng-1.5.1.tar.gz  //如果不可用,可以在网上找一个下下来再编译安装
  2. tar zxf libpng-1.5.1.tar.gz
  3. cd libpng-1.5.1
  4. ./configure
  5. make
  6. make install

5.安装graphviz,一个画图工具

  1. wget http://www.graphviz.org/pub/graphviz/stable/SOURCES/graphviz-2.24.0.tar.gz
  2. tar zxf graphviz-2.24.0.tar.gz
  3. cd graphviz-2.24.0
  4. ./configure--with-png=yes
  5. make && make install

6.使用方法:

  1. 头部:
  2. xhprof_enable();
  3. //xhprof_enable(XHPROF_FLAGS_NO_BUILTINS); 不记录内置的函数
  4. //xhprof_enable(XHPROF_FLAGS_CPU + XHPROF_FLAGS_MEMORY);  同时分析CPU和Mem的开销
  5. $xhprof_on = true;
  6. 生产环境可使用:
  7. if (mt_rand(1, 10000) == 1) {
  8. xhprof_enable();
  9. $xhprof_on = true;
  10. }
  11. 尾部:
  12. if($xhprof_on){
  13. $xhprof_data = xhprof_disable();
  14. $xhprof_root = '/www/<span style="font-family: Arial, Helvetica, sans-serif;">(xhprof的虚拟主机目录)</span>/';
  15. include_once $xhprof_root."xhprof_lib/utils/xhprof_lib.php";
  16. include_once $xhprof_root."xhprof_lib/utils/xhprof_runs.php";
  17. $xhprof_runs = new XHProfRuns_Default();
  18. $run_id = $xhprof_runs->save_run($xhprof_data, "hx");
  19. echo '<a href="http://(xhprof的虚拟主机域名)/xhprof_html/index.php?run='.$run_id.'&source=hx" target="_blank">统计</a>';
  20. }
  21. 运行程序,底部出现统计字样,点过去就可以看到性能分析了。按运行时间排序,很容易找出化时间最长的函数。
  22. 点[View Full Callgraph]图形化显示,最大的性能问题会用红色标出,其次是黄色。

附运行结果里的名次解释:

    1. Function Name 函数名
    2. Calls 调用次数
    3. Calls% 调用百分比
    4. Incl. Wall Time (microsec) 调用的包括子函数所有花费时间 以微秒算(一百万分之一秒)
    5. IWall% 调用的包括子函数所有花费时间的百分比
    6. Excl. Wall Time (microsec) 函数执行本身花费的时间,不包括子树执行时间,以微秒算(一百万分之一秒)
    7. EWall% 函数执行本身花费的时间的百分比,不包括子树执行时间
    8. Incl. CPU(microsecs) 调用的包括子函数所有花费的cpu时间。减Incl. Wall Time即为等待cpu的时间
    9. 减Excl. Wall Time即为等待cpu的时间
    10. ICpu% Incl. CPU(microsecs)的百分比
    11. Excl. CPU(microsec) 函数执行本身花费的cpu时间,不包括子树执行时间,以微秒算(一百万分之一秒)。
    12. ECPU% Excl. CPU(microsec)的百分比
    13. Incl.MemUse(bytes) 包括子函数执行使用的内存。
    14. IMemUse% Incl.MemUse(bytes)的百分比
    15. Excl.MemUse(bytes) 函数执行本身内存,以字节算
    16. EMemUse% Excl.MemUse(bytes)的百分比
    17. Incl.PeakMemUse(bytes) Incl.MemUse的峰值
    18. IPeakMemUse% Incl.PeakMemUse(bytes) 的峰值百分比
    19. Excl.PeakMemUse(bytes) Excl.MemUse的峰值
    20. EPeakMemUse% EMemUse% 峰值百分比

XHprof 使用 (转)的更多相关文章

  1. PHP性能测试工具xhprof安装与使用

    原文链接:http://www.orlion.ga/711/ 一.安装 wget https://pecl.php.net/get/xhprof-0.9.4.tgz tar zxf xhprof-0. ...

  2. windows配置xhprof,PHP性能分析工具

    本来以为配置这么一个工具不会费很大的力气,后面发现完全不是. 一.小插曲 早上显示电脑不能显示虚拟目录下的所有域名,但是能打开localhost,数据库连接也不行了.这个问题纠缠了我一个上午.对了还有 ...

  3. 使用xhprof分析php代码性能

    推荐在Linux平台使用xhprof,win下xhprof目前稳定版本在php5.5 安装xhprof 下载地址 http://pecl.php.net/get/xhprof-0.9.4.tgz 与p ...

  4. PHP - xhprof+Graphviz 安装配置

    简介:XHProf是Facebook放出的轻量级调试工具.和Xdebug相比,XHProf更加易用和可控,尤其是生成流程图和调试数据对比的功能很好很强大. 参考:http://us2.php.net/ ...

  5. XHPROF相关内容

    定义入口文件 define('XHPROF_OPEN', 0); define('XHPROF_ROOT', '/home/www/xhprof/'); // 开启调试模式 建议开发阶段开启 部署阶段 ...

  6. PHP性能监测的工具介绍 - XHProf

    http://segmentfault.com/a/1190000003509917 http://www.cnblogs.com/casatwy/archive/2013/01/17/2865241 ...

  7. XHProf中文手册

    目录 导言 XHProf 概况 安装XHProf扩展 使用XHProf进行性能分析 设置XHProf用户界面 在生产环境中使用XHProf注意事项 轻量级采样模式 附加功能 信赖 鸣谢 导言 XHPr ...

  8. xhprof学习笔记

    一.简介 XHProf 是一个轻量级的分层性能测量分析器. 在数据收集阶段,它跟踪调用次数与测量数据,展示程序动态调用的弧线图. 它在报告.后期处理阶段计算了独占的性能度量,例如运行经过的时间.CPU ...

  9. [PHP] Xhprof 非侵入式使用指南

    一般使用 Xhprof ,按文档操作可以快速上手,文件头开启 Xhprof,应用结束处得到访问的url查看. 这种使用方式可以快速看到效果,同时也有一些不好的地方: 一是不利于重复利用写好的示例代码: ...

  10. PHP使用XHProf进行性能分析

    1. 编译安装 wget http://pecl.php.net/get/xhprof-0.9.3.tgz tar zxvf xhprof-0.9.3.tgz cd xhprof-0.9.3/exte ...

随机推荐

  1. HDU_1063_Exponentiation_大数

    Exponentiation Time Limit: 2000/500 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Tot ...

  2. Replacing Threads with Dispatch Queues

    Replacing Threads with Dispatch Queues To understand how you might replace threads with dispatch que ...

  3. 关于 实体类中 时间字段 为string 类型和 datatime类型 比较

    经发现, 数据库中保存时间格式数据  可以正常 排序, 数据中保存时间格式字符串 排序出现问题 /// <summary> /// 修改时间 /// </summary> pu ...

  4. ADODB.Stream

    读写文本文件时出现了乱码,找到了ADODB.Stream,可以指定字符集读取文本 Function ReadUTF() Filename = "F:\vba\2018 - new\2018- ...

  5. Unity中确定时间是否在一定范围内

    NowTime = DateTime.Now.ToLocalTime(); Timeyear = DateTime.Now.ToLocalTime().ToString("yyyy-MM-d ...

  6. vue刷新本页面

    顶层app.vue页面 <template> <div id="app"> <router-view v-if="isRouterAlive ...

  7. Python学习笔记——Matplot库

    https://www.cnblogs.com/laoniubile/p/5893286.html  一.基本指令 import matplotlib.pyplot as plt plt.figure ...

  8. solaris roles cannot login directly

    oracle@solaris:~$ su - root Password: Oracle Corporation SunOS root@solaris:~# cat /etc/user_attr # ...

  9. [C++] muParser 的简单使用方法

    关于 muParser 库 许多应用程序需要解析数学表达式.该库的主要目的是提供一种快速简便的方法. muParser是一个用C ++编写的可扩展的高性能数学表达式解析器库. 它的工作原理是将数学表达 ...

  10. 51.percentiles rank以及网站访问时延SLA统计

    主要知识点: percentile_ranks的用法 percentile的优化     一.percentile_ranks的用法 SLA:就是所提供的服务的标准. 比如一个网站的提供的访问延时的S ...