php7安装xhprof,PHP7 下安装并使用 xhprof 性能分析工具
xhprof 的安装
cd ~
git clone https://github.com/longxinH/xhprof
安装 xhprof
cd xhprof/extension/
/opt/php-7.0.14/bin/phpize
./configure --with-php-config=/opt/php-7.0.14/bin/php-config --enable-xhprof
make
make install
出现
Installing shared extensions: /opt/php-7.0.14/lib/php/extensions/no-debug-non-zts-20151012/
代表编译成功
修改 php.ini 文件
/opt/php-7.0.14/bin/php -i | grep php.ini //命令查找php.ini文件的位置
在/etc/php.ini中增加如下配置
[xhprof]
extension=xhprof.so
xhprof.output_dir=/data/www/xhprof/save_output_dir //该目录自由定义即可,用来保存xhprof生成的源文件
保存好之后,重启php-fpm
kill -USR2 `cat /opt/php-7.0.14/var/run/php-fpm.pid`
将相关文件移动到项目中
//切换到下载的 xhprof 目录
cp -r xhprof/xhprof_html ROOT_PATH/
cp -r xhprof/xhprof_lib ROOT_PATH/
使用
xhprof_enable();
//你需要分析的代码
$xhprof_data = xhprof_disable();
include_once ROOT_PATH.'/xhprof_lib/utils/xhprof_lib.php';
include_once ROOT_PATH . '/xhprof_lib/utils/xhprof_runs.php';
$xhprof_runs = new XHProfRuns_Default();
$run_id = $xhprof_runs->save_run($xhprof_data, "xhprof_test");
//将run_id保存起来或者随代码一起输出
查看数据
访问$host_url/xhpfrof_html/index.php?run=58d3b28b521f6&source=xhprof_test来查看结果
图形化结果
点击[View Full Callgraph]可以看图形化结果
报错
failed to execute cmd:" dot -Tpng". stderr:sh: dot:command not found。
//解决方案
yum install graphviz
如果输入浏览器没有数据这种情况:Run #530707980ee18: Invalid Run Id = 530707980ee18错误结果:
可能是你的配置权限不足,请给个权限,可以直接777,然后重新运行走后这个步骤看看效果。到这里xhprof安装就结束了,开始你的性能优化之旅吧,有了这个工具会事半功倍的~~对于xhprof的名词解释:
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% 峰值百分比
错误处理:
failed to execute cmd:" dot -Tpng".stderr:`sh: dot: command not found '
原因:未安装图形化工具
yum install graphviz//centosbrew install graphviz//mac
界面优化:XHProf UI 分支
查看图片
图中红色的部分为性能比较低,耗时比较长的部分,我们可以根据根据哪些函数被标记为红色对系统的代码进行优化
补充
Function Name:方法名称。
Calls:方法被调用的次数。
Calls%:方法调用次数在同级方法总数调用次数中所占的百分比。
Incl.Wall Time(microsec):方法执行花费的时间,包括子方法的执行时间。(单位:微秒)
IWall%:方法执行花费的时间百分比。
Excl. Wall Time(microsec):方法本身执行花费的时间,不包括子方法的执行时间。(单位:微秒)
EWall%:方法本身执行花费的时间百分比。
Incl. CPU(microsecs):方法执行花费的CPU时间,包括子方法的执行时间。(单位:微秒)
ICpu%:方法执行花费的CPU时间百分比。
Excl. CPU(microsec):方法本身执行花费的CPU时间,不包括子方法的执行时间。(单位:微秒)
ECPU%:方法本身执行花费的CPU时间百分比。
Incl.MemUse(bytes):方法执行占用的内存,包括子方法执行占用的内存。(单位:字节)
IMemUse%:方法执行占用的内存百分比。
Excl.MemUse(bytes):方法本身执行占用的内存,不包括子方法执行占用的内存。(单位:字节)
EMemUse%:方法本身执行占用的内存百分比。
Incl.PeakMemUse(bytes):Incl.MemUse峰值。(单位:字节)
IPeakMemUse%:Incl.MemUse峰值百分比。
Excl.PeakMemUse(bytes):Excl.MemUse峰值。单位:(字节)
EPeakMemUse%:Excl.MemUse峰值百分比。
参考:
http://www.jianshu.com/p/c420ebe6ce39
http://www.php.cn/php-weizijiaocheng-376423.html
https://www.oschina.net/question/1439832_2147576
php7安装xhprof,PHP7 下安装并使用 xhprof 性能分析工具相关推荐
- php轻量级的性能分析工具xhprof的安装使用
之前一直使用基于Xdebug进行PHP的性能分析,对于本地开发环境来说是够用了,但如果是线上环境的话,xdebug消耗较大,配置也不够灵活,因此线上环境建议使用xhprof进行PHP性能追踪及分析. ...
- php性能分析工具XHProf安装配置使用教程(linux精华版)
XHProf是一个分层PHP性能分析工具.它报告函数级别的请求次数和各种指标,包括阻塞时间,CPU时间和内存使用情况.一个函数的开销,可细分成调用者和被调用者的开销,XHProf数据收集阶段,它记录调 ...
- php性能分析工具 - xhprof的安装使用
一.前言 有用的东西还是记录下来吧,也方便以后的查询:这次记录一下xhprof的安装使用: xhprof是facebook开源出来的一个php轻量级的性能分析工具,跟Xdebug类似,但性能开销更低, ...
- linux nginx rpm 安装配置,Centos下安装nginx rpm包
1 在nginx官方网站下载一个rpm包,下载地址是:http://nginx.org/en/download.html wget http://nginx.org/packages/centos/6 ...
- php xhprof extension,PHP性能分析工具-xhprof扩展安装
简述:XHProf是一个分层PHP性能分析工具.它报告函数级别的请求次数和各种指标,包括阻塞时间,CPU时间和内存使用情况.一个函数的开 销,可细分成调用者和被调用者的开销,XHProf数据收集阶段, ...
- sql2005 安装完成后只有配置工具,没有管理工具和性能分析工具
安装完成后只有配置工具,没有管理工具和性能分析工具等. (1)版本问题,Express 版本的安装包中是没有管理工具.需要额外下载. Microsoft SQL Server Management ...
- Linux系统下常见性能分析工具的使用
在前面的文章中,我简单介绍了影响linux性能的几个方面以及如何解决这些方面的问题,但是如何才能从系统上发现是某个方面或某几个方面出现问题了呢,这就需要使用linux系统提供的几个常用性能分析工具,下 ...
- linux 性能教程,Linux系统下常见性能分析工具的使用
在前面的文章中,我简单介绍了影响linux性能的几个方面以及如何解决这些方面的问题,但是如何才能从系统上发现是某个方面或某几个方面出现问题了呢,这就需要使用linux系统提供的几个常用性能分析工具,下 ...
- 分析linux系统的运行性能,Linux系统下常见性能分析工具的使用
在前面的文章中,我简单介绍了影响linux性能的几个方面以及如何解决这些方面的问题,但是如何才能从系统上发现是某个方面或某几个方面出现问题了呢,这就需要使用linux系统提供的几个常用性能分析工具,下 ...
- Linux下性能分析工具
Linux下性能分析工具 1.iotop IO性能分析工具 yum -y install epel-release yum -y install iotop iotop 2.nload 网络流量分析工 ...
最新文章
- 浅显易懂 Makefile 入门 (03)— 目标文件搜索(VPATH 和 vpath 的区别和使用)、隐含规则
- AEM:众里寻他千百度,用了SIP不迷路-识别污水处理单元中砷氧化细菌的多样性及代谢潜力...
- 电脑更新重启后黑屏_电脑进入系统后黑屏怎么办?
- js中报错“Maximum call stack size exceeded“解决方法
- 顶级项目管理工具 Top 10
- 深度学习-机器学习(神经网络的应用 上)
- 【Linux】一步一步学Linux——dmesg命令(74)
- 前端面试题整理【转】
- sql运算符_SQL AND运算符解释语法示例
- Python——装饰器的学习笔记(legacy)
- 中国水痘带状疱疹感染治疗药物市场趋势报告、技术动态创新及市场预测
- JavaScript年月日和时间戳互转
- 如何html设置下载的字体呢?
- 路由器的几种工作模式
- gdb调试查看内存数据
- OCR论文阅读笔记01--multi-oriented scence text detection via corner localization and regin segmentation
- 我这些年从来没有用过算法,除了出去面试的时候
- javascript实现无缝滚动
- 【OCR】AspriseOCR 条码识别 C++
- mobx在react如何使用