PHP - xhprof+Graphviz 安装配置
2016-12-27 13:53
465 查看
简介:XHProf是Facebook放出的轻量级调试工具。和Xdebug相比,XHProf更加易用和可控,尤其是生成流程图和调试数据对比的功能很好很强大。
参考:http://us2.php.net/manual/zh/book.xhprof.php
你也可以从 http://pecl.php.net/package/xhprof 这里下载。
注意:
php5.4及以上版本不能在pecl中下载,不支持。需要在github上下载https://github.com/facebook/xhprof。
另外xhprof已经很久没有更新过了,截至目前还不支持php7。
8. 验证是否安装成功
![](https://oscdn.geek-share.com/Uploads/Images/Content/201909/21/cb07bebe72941bb82ed6c0bd815c11e9.png)
![](https://oscdn.geek-share.com/Uploads/Images/Content/201909/21/2bb17efb5614ff355b328cf71fe98293.png)
![](https://oscdn.geek-share.com/Uploads/Images/Content/201909/21/ecd2b44c97d8297c91de939a6a3315f1.png)
graphviz 安装 (安装Graphviz的目的是为了xhprof图形化web工具查看profiling log文件。)
安装完成后,会生成/usr/local/bin/dot文件,确保路径在PATH环境变量里,以便XHProf能找到它,graphviz处于/usr/local/lib/graphviz。
![](https://oscdn.geek-share.com/Uploads/Images/Content/201909/21/2f14194663859cb5d26ad34fad177215.png)
![](https://oscdn.geek-share.com/Uploads/Images/Content/201909/21/fee927c38ba823d2768189bdf89168e3.png)
看看输出里面是不是已经有了/usr/bin/dot这个路径了。
11. http://10.5.100.243:8091/xhprof_html/callgraph.php?run=52c6416d09cf5&source=xhprof_foo
报错了 Notice: Undefined variable: pipes in /home/www/phpsite/pt/xhprof_lib/utils/callgraph_utils.php on line 112 Warning:proc_open() has been disabled for security reasons in /home/www/phpsite/pt/xhprof_lib/utils/callgraph_utils.php on line 112 failed to execute cmd " dot -Tpng"
打开/usr/local/php/etc/php.ini, 找到
先执行
killall php-fpm
再执行(usr/local/php是php的安装目录)
/usr/local/php/sbin/php-fpm &
参考: https://drupal.org/node/366299
13. 如何看懂XHProf分析报告
如图1所示,XHProf报告中有许多列,它们代表的含义见下表:
下边是PHP性能分析和PHP性能调优的三篇文章
中文翻译版:
PHP 性能分析第一篇: Xhprof & Xhgui 介绍
PHP 性能分析第二篇: Xhgui In-Depth
PHP 性能分析第三篇: 性能调优实战
英文原版:
Profiling PHP Part 1: Intro to Xhprof & Xhgui
Profiling PHP Part 2: Xhgui In-Depth
Profiling PHP Part 3: Practical Performance Tuning
xhprof手册 http://php.net/xhprof
使用xhprof进行线上PHP性能追踪及分析 http://avnpc.com/pages/profiler-php-performance-online-by-xhprof?utm_source=tuicool&utm_medium=referral
xhprof.io https://github.com/gajus/xhprof.io
xhgui https://github.com/perftools/xhgui
oneapm http://www.oneapm.com/
参考:http://us2.php.net/manual/zh/book.xhprof.php
你和别人同时写出了一个导出订单的功能,你的导出一次用了30分钟,别人用了1分钟,那么这里就很明显的区分出来了你们代码的效率。代码的优劣是问题的根源。如果你想找出是什么原因导致代码执行这么慢,那么你就要学会怎么分析代码性能,找到代码瓶颈。 除了之前我们所说的可以使用xdebug分析PHP性能之外还可以使用xhprof分析。 Xhprof是facebook开源出来的一个php轻量级的性能分析工具,跟Xdebug类似,但性能开销更低,还可以用在生产环境中,也可以由程序开关来控制是否进行profile。
下载安装
sudo wget https://codeload.github.com/phacility/xhprof/zip/master -O xhprof.zip
你也可以从 http://pecl.php.net/package/xhprof 这里下载。
注意:
php5.4及以上版本不能在pecl中下载,不支持。需要在github上下载https://github.com/facebook/xhprof。
另外xhprof已经很久没有更新过了,截至目前还不支持php7。
cd xhprof-master/ cd extension/ sudo /usr/local/webserver/php-5.6.21/bin/phpize sudo ./configure --with-php-config=/usr/local/webserver/php/bin/php-config --enable-xhprof sudo make && make install
[xhprof] extension=xhprof.so xhprof.output_dir=/home/xhprof 定义输出文件的存放位置
8. 验证是否安装成功
php -m
![](https://oscdn.geek-share.com/Uploads/Images/Content/201909/21/cb07bebe72941bb82ed6c0bd815c11e9.png)
性能测试
关于xhprof的使用,请参照手册 http://php.net/xhprof![](https://oscdn.geek-share.com/Uploads/Images/Content/201909/21/2bb17efb5614ff355b328cf71fe98293.png)
![](https://oscdn.geek-share.com/Uploads/Images/Content/201909/21/ecd2b44c97d8297c91de939a6a3315f1.png)
graphviz
graphviz是一个绘制图形的工具,可以更为直观的让你查看性能的瓶颈。graphviz 安装 (安装Graphviz的目的是为了xhprof图形化web工具查看profiling log文件。)
安装完成后,会生成/usr/local/bin/dot文件,确保路径在PATH环境变量里,以便XHProf能找到它,graphviz处于/usr/local/lib/graphviz。
sudo vi ~/.bash_profile
![](https://oscdn.geek-share.com/Uploads/Images/Content/201909/21/2f14194663859cb5d26ad34fad177215.png)
source ~/.bash_profile
echo $PATH
![](https://oscdn.geek-share.com/Uploads/Images/Content/201909/21/fee927c38ba823d2768189bdf89168e3.png)
看看输出里面是不是已经有了/usr/bin/dot这个路径了。
11. http://10.5.100.243:8091/xhprof_html/callgraph.php?run=52c6416d09cf5&source=xhprof_foo
报错了 Notice: Undefined variable: pipes in /home/www/phpsite/pt/xhprof_lib/utils/callgraph_utils.php on line 112 Warning:proc_open() has been disabled for security reasons in /home/www/phpsite/pt/xhprof_lib/utils/callgraph_utils.php on line 112 failed to execute cmd " dot -Tpng"
打开/usr/local/php/etc/php.ini, 找到
disable_functions,把proc_open()从disable_functions列表中去掉。
先执行
killall php-fpm
再执行(usr/local/php是php的安装目录)
/usr/local/php/sbin/php-fpm &
参考: https://drupal.org/node/366299
13. 如何看懂XHProf分析报告
如图1所示,XHProf报告中有许多列,它们代表的含义见下表:
列名 | 描述 |
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峰值百分比。 |
其他
你也可以使用xhprof.io或者xhgui工具来分析你的xhprof结果。下边是PHP性能分析和PHP性能调优的三篇文章
中文翻译版:
PHP 性能分析第一篇: Xhprof & Xhgui 介绍
PHP 性能分析第二篇: Xhgui In-Depth
PHP 性能分析第三篇: 性能调优实战
英文原版:
Profiling PHP Part 1: Intro to Xhprof & Xhgui
Profiling PHP Part 2: Xhgui In-Depth
Profiling PHP Part 3: Practical Performance Tuning
参考资料
xhprof地址 https://github.com/facebook/xhprofxhprof手册 http://php.net/xhprof
使用xhprof进行线上PHP性能追踪及分析 http://avnpc.com/pages/profiler-php-performance-online-by-xhprof?utm_source=tuicool&utm_medium=referral
xhprof.io https://github.com/gajus/xhprof.io
xhgui https://github.com/perftools/xhgui
oneapm http://www.oneapm.com/
相关文章推荐
- PHP - xhprof+Graphviz 安装配置
- PHP - xhprof+Graphviz 安装配置
- php性能分析工具XHProf安装配置使用教程(linux精华版)
- facebook php程序监控性能软件xhprof安装配置
- window wamp下xhprof的安装使用,Graphviz配置
- 用iis配置php,安装一步到位!
- Win2003下APACHE+PHP5+MYSQL4+PHPMYADMIN 的简易安装配置
- PHP 5 在 Windows下 的 APACHE 模块化安装 和 MySQL 配置
- Windows下PHP和Apache的安装与配置
- PHP的安装与配置
- 用iis配置php,安装一步到位!
- php安装配置
- Apache+PHP5+MySQL4(5)+PHPMyAdmin 的简易安装配置
- apache+php5+mysql4(5)+phpmyadmin 的简易安装配置
- Apache、php、mysql在windows下的安装与配置图解(最新版)
- 教程-Win2003下APACHE+PHP5+MYSQL4+PHPMYADMIN 的简易安装配置
- Win2003下APACHE+PHP5+MYSQL4+PHPMYADMIN 的简易安装配置
- RedHat Linux下tomcat5.0.28 +apache2.0.50+php4.3.9安装配置[原]
- Win2003下APACHE+PHP5+MYSQL4+PHPMYADMIN 的简易安装配置
- linux 学习笔记 - php 环境安装与配置