一、前言

  有用的东西还是记录下来吧,也方便以后的查询;这次记录一下xhprof的安装使用;

  xhprof是facebook开源出来的一个php轻量级的性能分析工具,跟Xdebug类似,但性能开销更低,

  还可以用在生产环境中,也可以由程序开 关来控制是否进行profile。

二、安装

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

2.    tar zxf xhprof-0.9.3.tgz  

3.    cd xhprof-0.9.3/extension

4.    /usr/bin/phpize
(php版本安装后生成的phpize文件,可根据phpinfo查看,所以php版本不同,生成的phpize也不同,此步骤主要生成configure文件) 5. ./configure –with-php-config=/usr/bin/php-config
(php-config的路径,也是php安装后生成的文件) 6. make 7. sudo make install
(会自动将生成的扩展文件拷贝到扩展目录中/usr/lib64/php/modules) 当然具体的php文件的目录,每个人不尽相同,可根据phpinfo查询

三、php.ini配置

 根据phpinfo找到 extension_dir的目录
(/etc/php.d/xhprof.ini) 添加一下内容: extension=xhprof.so
xhprof.output_dir=/tmp/xhprof //xhprof的分析日志

四、重启服务

 sudo /etc/init.d/http restart

 查看phpinfo是否安装成功

五、使用方法

 开头:
xhprof_enable(); //开启监测
//xhprof_enable(XHPROF_FLAGS_NO_BUILTINS); 不记录内置的函数
//xhprof_enable(XHPROF_FLAGS_CPU + XHPROF_FLAGS_MEMORY); 同时分析CPU和Mem的开销 //要测试的代码
...
...
... 结尾:
$xhprof_data = xhprof_disable(); //停止监测,返回运行数据
$xhprof_root = '/(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();
$run_id = $xhprof_runs->save_run($xhprof_data, "xhprof");
echo '<a href="http://(xhprof的虚拟主机域名)/xhprof_html/index.php?run='.$run_id.'&source=xhprof" target="_blank">xhprof统计</a>';

  上边的代码使用了,给xhprof设置虚拟主机的方法。

  把源码包中的 xhprof_html 和 xhprof_lib 文件夹拷贝到自己建立的虚拟目录中

  cp -r xhprof_html xhprof_lib /xxx/xhprof/  (此处目的是建立数据分析目录,可将此目录配置成虚拟主机访问)

  运行后,统计点击返回的 xhprof统计 链接,即可。

六、注意问题以及名词解释

  在显示的统计页面中,点[View Full Callgraph]图形化显示(最大的性能问题会用红色标出,其次是黄色);

  点击后,可能提示错误消息,执行以下命令即可

 yum install -y graphviz
yum install graphviz-gd

  名词解释

     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://blog.csdn.net/maitiandaozi/article/details/8896293
http://www.cnblogs.com/wangtao_20/archive/2011/03/16/1986508.html
http://www.cnblogs.com/wangtao_20/archive/2013/09/13/3320497.html http://avnpc.com/pages/profiler-php-performance-online-by-xhprof
http://www.ituring.com.cn/article/132392
http://www.ituring.com.cn/article/133062?utm_source=tuicool

php性能分析工具 - xhprof的安装使用的更多相关文章

  1. PHP性能分析工具xhprof的安装使用与注意事项

    前言 xhprof由facebook开源出来的一个PHP性能监控工具,占用资源很少,甚至能够在生产环境中进行部署. 它可以结合graphviz使用,能够以图片的形式很直观的展示代码执行耗时. 下面主要 ...

  2. PHP性能追踪及分析工具xhprof的安装与使用

    对于本地开发环境来说,进行性能分析xdebug是够用了,但如果是线上环境的话,xdebug消耗较大,配置也不够灵活,因此线上环境建议使用xhprof进行PHP性能追踪及分析. 我们今天就简单介绍一下x ...

  3. windows下安装php性能分析工具XHProf

    一.安装扩展 下载XHProf扩展:http://dev.freshsite.pl/php-extensions/xhprof.html 放入扩展文件:下载后解压出.dll文件,拷贝它到php的ext ...

  4. php性能分析工具xhprof

    安装方法: wget http://pecl.php.net/get/xhprof-0.9.x.tgz cp xhprof-0.9.x.tgz /home/www/xhprof.tgz tar zxv ...

  5. centos下性能分析工具perf的安装和简单使用

    1.安装: cat /etc/redhat-releaseCentOS release 6.6 (Final) sudo yum install perf 2.

  6. 谷歌网页性能分析工具 Lighthouse 的安装及使用

    github地址:https://github.com/GoogleChrome/lighthouse 一.如果可以翻墙的话可以从 chrome 扩展插件里直接安装. 二.下面是另一种使用方法:基于 ...

  7. PHP性能分析工具:xhprof

    ​phpize的安装   一直想装VLD却一直没装上,因为需要用到phpize,但这个工具大部分机子都没有装,上网搜了一下大部分都是讲phpize的应用没有讲怎么安装. 今天终于搜到了,不过是要在li ...

  8. PHP性能优化工具–xhprof安装

    PHP性能优化工具–xhprof安装,这里我先贴出大致的步骤: 1.获取xhprof 2.编译前预处理 3.编译安装 4.配置php.ini 5.查看运行结果 那么下面我们开始安装xhprof工具吧: ...

  9. Linux性能分析工具的安装和使用

    转自:http://blog.chinaunix.net/uid-26488891-id-3118279.html Normal 0 7.8 磅 0 2 false false false EN-US ...

随机推荐

  1. Warchall: Live RCE

    具体漏洞是:CVE-2012-1823(PHP-CGI RCE) 在地址后面加进参数运行对应的php-cgi 参数的行为 例如 index.php?-s 相参于/usr/bin/php53-cgi/p ...

  2. jquery中append跟prepend的用法

    jquery中append和prepend的用法 append   是插入到元素中,并放到元素内的最后面prepend  是插入到元素中,并放到元素内的最前面例$("body"). ...

  3. unity3d - new 不出的单例

    可能习惯了写单例的朋友,或者常规的单例模式 会这样做 private static Single instance; public static Single Instance(){ if (inst ...

  4. mybatis(一)环境的搭建

    项目模型: 一.创建一个web项目ssm001 1.1准备数据 在数据创建表并添加数据 user表: dept表: /* Navicat MySQL Data Transfer Source Serv ...

  5. Search and Replace

    function myReplace(str, before, after) { //return str; if(before[0] === before[0].toUpperCase()){ af ...

  6. 技术英文单词贴--B

    B breadcrumb 面包屑 bubble 冒泡

  7. Linux命令(2)- mv

    mv 功能:可以用来移动文件或者将文件改名. 格式:mv [选项] 源文件或目录 目标文件或目录 说明:mv命令将文件重命名或将其移至一个新的目录中.第二个参数类型是文件时,mv命令完成文件重命名,此 ...

  8. ListView和ScrollView冲突

    当ListView放在ScrollView中的时候,无论你设置高度为 match_parent(填充父窗体)和wrap_content(包裹内容)都只显示一行,这是你把ListView放在Linear ...

  9. 【实(dou)力(bi)首(mai)发(meng)】第四次CCF软件能力认证题解

    这次的题总体上相对前三次偏简单.由于实力有限,就分析前四题.     试题编号:    201503-1 试题名称:    图像旋转 时间限制:    5.0s 内存限制:    256.0MB 问题 ...

  10. Java关键字:transient,strictfp和volatile简介

    关键字:transient 使用对象:字段 介绍:transient说明一个属性是临时的,不会被序列化. 当对象进行序列化(Serializable)过程时候,有一些属性的状态是瞬时的,这样的对象是无 ...