原文地址: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. 用Grunt进行CSS文件压缩

    假设你的项目的CSS文件全部放在项目目录下名为css的文件夹中,现在将它压缩合并成一个名为main-min.css的文件,放在css-min文件夹下. (1)首先保证机器安装了node.js. (2) ...

  2. 扩增子图表解读6韦恩图:比较组间共有和特有OTU或分类单元

    韦恩图 Venn Diagram Venn Diagram,也称韦恩图.维恩图.文氏图,用于显示元素集合重叠区域的图示.   韦图绘制工具 常用R语言的VennDiagram包绘制,输出PDF格式方便 ...

  3. CAD在网页中绘制批注

    1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 3 ...

  4. 啥是SQL?

    SQL:(Structured Query Language)是结构化查询语言缩写.是一门专门与数据库管理系统打交道的语言. SQL语言:是关系型数据库的标准语言,,其主要用于存取数据,查询数据,更新 ...

  5. python爬虫15 | 害羞,用多线程秒爬那些万恶的妹纸们,纸巾呢?

    有时候 只是在人群中多看了一眼 就再也没办法忘掉那些容颜 小帅b在普通的一天 上着普通的网 不小心打开了一个不太普通的网站 https://www.mzitu.com/ 从此进入了不普通的一天 看着不 ...

  6. 【3】数据筛选2 - requests

    目录     1.概述     2.下载安装     3.入门程序     4.请求对象:请求方式     5.请求对象:GET参数传递     6.请求对象:POST参数传递     7.请求对象: ...

  7. 【 Educational Codeforces Round 51 (Rated for Div. 2) F】The Shortest Statement

    [链接] 我是链接,点我呀:) [题意] [题解] 先处理出来任意一棵树. 然后把不是树上的边处理出来 对于每一条非树边的点(最多21*2个点) 在原图上,做dijkstra 这样就能处理出来这些非树 ...

  8. play snake on windows

    今天和人吃晚饭突然想起来 之前西佳佳老师说小学期会要求两星期撸一个小游戏 有人已经撸完一个俄罗斯方块了... 菜逼我决定从最简单的贪吃蛇玩起... 我是直接参考的这个博客 算是相当简单而且很Low的实 ...

  9. [cogs731] [网络流24题#6] 最长递增子序列 [网络流,最大流]

    [转hzwer]第一问是LIS,动态规划求解,第二问和第三问用网络最大流解决.首先动态规划求出F[i],表示以第i位为开头的最长上升序列的长度,求出最长上升序列长度K.1.把序列每位i拆成两个点< ...

  10. java中Long 和long的区别

    Java的数据类型分两种:1.基本类型:long,int,byte,float,double,char2. 对象类型(类): Long,Integer,Byte,Float,Double,Char,S ...