XHprof 使用 (转)
原文地址:http://blog.csdn.net/maitiandaozi/article/details/8896293
XHProf是facebook开源出来的一个php轻量级的性能分析工具,跟Xdebug类似,但性能开销更低,还可以用在生产环境中,也可以由程序开 关来控制是否进行profile。
1.安装XHprof
- wget http://pecl.php.net/get/xhprof-0.9.2.tgz
- tar zxf xhprof-0.9.2.tgz
- cd xhprof-0.9.2
- cp -r xhprof_html xhprof_lib /你的web目录路径/xhprof/ (此处目的是建立数据分析目录,可将此目录配置成虚拟主机访问)
- cd extension/
- /usr/local/webserver/php/bin/phpize
- ./configure –with-php-config=/usr/local/webserver/php/bin/php-config (php-config的路径)
- 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信息。
- xhprof 0.9.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.的错误
- wget http://nchc.dl.sourceforge.net/project/libpng/libpng15/1.5.1/libpng-1.5.1.tar.gz //如果不可用,可以在网上找一个下下来再编译安装
- tar zxf libpng-1.5.1.tar.gz
- cd libpng-1.5.1
- ./configure
- make
- make install
5.安装graphviz,一个画图工具
- wget http://www.graphviz.org/pub/graphviz/stable/SOURCES/graphviz-2.24.0.tar.gz
- tar zxf graphviz-2.24.0.tar.gz
- cd graphviz-2.24.0
- ./configure--with-png=yes
- make && make install
6.使用方法:
- 头部:
- xhprof_enable();
- //xhprof_enable(XHPROF_FLAGS_NO_BUILTINS); 不记录内置的函数
- //xhprof_enable(XHPROF_FLAGS_CPU + XHPROF_FLAGS_MEMORY); 同时分析CPU和Mem的开销
- $xhprof_on = true;
- 生产环境可使用:
- if (mt_rand(1, 10000) == 1) {
- xhprof_enable();
- $xhprof_on = true;
- }
- 尾部:
- if($xhprof_on){
- $xhprof_data = xhprof_disable();
- $xhprof_root = '/www/<span style="font-family: Arial, Helvetica, sans-serif;">(xhprof的虚拟主机目录)</span>/';
- 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, "hx");
- echo '<a href="http://(xhprof的虚拟主机域名)/xhprof_html/index.php?run='.$run_id.'&source=hx" target="_blank">统计</a>';
- }
- 运行程序,底部出现统计字样,点过去就可以看到性能分析了。按运行时间排序,很容易找出化时间最长的函数。
- 点[View Full Callgraph]图形化显示,最大的性能问题会用红色标出,其次是黄色。
附运行结果里的名次解释:
- 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% 峰值百分比
XHprof 使用 (转)的更多相关文章
- PHP性能测试工具xhprof安装与使用
原文链接:http://www.orlion.ga/711/ 一.安装 wget https://pecl.php.net/get/xhprof-0.9.4.tgz tar zxf xhprof-0. ...
- windows配置xhprof,PHP性能分析工具
本来以为配置这么一个工具不会费很大的力气,后面发现完全不是. 一.小插曲 早上显示电脑不能显示虚拟目录下的所有域名,但是能打开localhost,数据库连接也不行了.这个问题纠缠了我一个上午.对了还有 ...
- 使用xhprof分析php代码性能
推荐在Linux平台使用xhprof,win下xhprof目前稳定版本在php5.5 安装xhprof 下载地址 http://pecl.php.net/get/xhprof-0.9.4.tgz 与p ...
- PHP - xhprof+Graphviz 安装配置
简介:XHProf是Facebook放出的轻量级调试工具.和Xdebug相比,XHProf更加易用和可控,尤其是生成流程图和调试数据对比的功能很好很强大. 参考:http://us2.php.net/ ...
- XHPROF相关内容
定义入口文件 define('XHPROF_OPEN', 0); define('XHPROF_ROOT', '/home/www/xhprof/'); // 开启调试模式 建议开发阶段开启 部署阶段 ...
- PHP性能监测的工具介绍 - XHProf
http://segmentfault.com/a/1190000003509917 http://www.cnblogs.com/casatwy/archive/2013/01/17/2865241 ...
- XHProf中文手册
目录 导言 XHProf 概况 安装XHProf扩展 使用XHProf进行性能分析 设置XHProf用户界面 在生产环境中使用XHProf注意事项 轻量级采样模式 附加功能 信赖 鸣谢 导言 XHPr ...
- xhprof学习笔记
一.简介 XHProf 是一个轻量级的分层性能测量分析器. 在数据收集阶段,它跟踪调用次数与测量数据,展示程序动态调用的弧线图. 它在报告.后期处理阶段计算了独占的性能度量,例如运行经过的时间.CPU ...
- [PHP] Xhprof 非侵入式使用指南
一般使用 Xhprof ,按文档操作可以快速上手,文件头开启 Xhprof,应用结束处得到访问的url查看. 这种使用方式可以快速看到效果,同时也有一些不好的地方: 一是不利于重复利用写好的示例代码: ...
- 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 ...
随机推荐
- Python语言之变量2(命名规则,类型转换)
1.命名规则 1.起始位为字母(大小写)或下划线('_') 2.其他部分为字母(大小写).下划线('_')或数字(0-9) 3.大小写敏感 2.先体验一把: #Ask the user their n ...
- CAD在网页中增加一个射线
主要用到函数说明: IMxDrawBlockTableRecord::AddRay 向记录中增加一个射线,详细说明如下: 参数 说明 point1 射线上的点1 point2 射线上的点2 js代码实 ...
- SpringMVC进行json数据交互
请求key/value.输出json.此方法在开发中比较常用. 在注解适配器中加入messageConverters <!--注解适配器 --> <bean class=" ...
- 企业级mysql数据库完全备份、增量备份脚本
企业完全备份脚本 [root@client ~]# vim /opt/mysql_bak_wanbei.sh #!/bin/bash #MySQL数据库完全备份脚本 #设置登录变量 MY_USER=& ...
- 从0开始复习JS---1、函数复习
1. 写一个函数,实现对数字数组的排序. function get_order(array){ for(var i = 0; i <array.length-1; i++){ for(var j ...
- ORM 操作
官方文档 一.操作 基本操作 # 增 models.Tb1.objects.create(c1='xx', c2='oo') # 增加一条数据,可以接受字典类型数据 **kwargs obj = mo ...
- MySql 日志查看与设置
错误日志log-errol 开启方式:在my.ini的[mysqld]选项下:添加代码:log-error=E:\log-error.txt 记录内容:主要是记录启动.运行或停止mysqld时出现的致 ...
- [数据结构]C#顺序表的实现
在数据结构的学习当中,想必C++可能是大家接触最多的入门语言了 但是C#的数据结构却很少看到,今天我写了一个C#顺序表的顺序存储结构 顺序表是在计算机内存中以数组的形式保存的线性表,线性表的顺序存储是 ...
- linux学习6-简单的文本处理
简单的文本处理 实验介绍 这一节我们将介绍这几个命令tr(注意不是tar),col,join,paste.实际这一节是上一节关于能实现管道操作的命令的延续,所以我们依然将结合管道来熟悉这些命令的使用. ...
- hdu6096 String
String Time Limit: 6000/3000 MS (Java/Others) Memory Limit: 524288/524288 K (Java/Others) Problem De ...