PHP性能分析之Xhprof安装

Xhprof是facebook开源的一个分层PHP性能分析工具。可以收集函数级别的请求次数和各种指标,包括阻塞时间,CPU时间和内存使用情况。一个函数的开销,还可以细分成调用者和被调用者的开销。

下面介绍Xhprof的安装:

1、获取安装包
wget http://pecl.php.net/get/xhprof-0.9.4.tgz

如下图所示:

2、解压安装包
tar -zxvf xhprof-0.9.4.tgz
cd xhprof-0.9.4
cd extension
3、编译安装:
/usr/local/php/bin/phpize
./configure --with-php-config=/usr/local/php/bin/php-config
make && make install
4、配置php.ini

安装成功后,需要在php.ini中添加xhprof.so的扩展,并设置xhprof.output_dir目录:

extension = xhprof.so;
xhprof.output_dir = /tmp

重启web服务器和php环境,即可生效。

5、查看运行结果

将示例复制到web目录下面:

cp -r examples/ xhprof_html/ xhprof_lib/ /home/wwwroot/default/xhprof/

在浏览器中运行"http://localhost/xhprof/xhprof_html/",会出现如下列表:

任意点击一个链接,即会有项目的性能数据报告:

6、安装Graphviz画图工具

若想以图表方式展示xhprof的性能数据,可以安装Graphviz,不过需要先安装libpng包,步骤如下:

#安装libpng
wget https://sourceforge.net/projects/libpng/files/libpng16/1.6.28/libpng-1.6.28.tar.gz/download
mv download libpng-1.6.28.tar.gz
tar -zxvf libpng-1.6.28.tar.gz
cd libpng-1.6.28
./configure 
make && make install

#安装Graphviz
wget http://www.graphviz.org/pub/graphviz/stable/SOURCES/graphviz-2.24.0.tar.gz 
tar -zxvf graphviz-2.24.0.tar.gz
cd graphviz-2.24.0
./configure
make && make install

若出现如下提示:

failed to execute cmd " dot -Tpng"

则编辑“php.ini”文件,将“disable_functions”属性中禁用的“proc_open”函数去掉,保存配置文件后,重启php-fpm和nginx,即可生效。

7、查看xhprof+Graphviz图表

在如下页面中点击“[View Full Callgraph]”,即可看到效果。

图1

下一节将介绍《PHP性能分析之Xhprof的使用》

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏张戈的专栏

nginx日志切割及7天前的历史日志删除脚本

上次写到《服务器日志备份超节省空间的思路》,压缩后磁盘占用由 93%降到了 62%,效果还是不错的!为什么不直接删除呢?其实是因为这些日志涉及到支付等重要业务,...

3003
来自专栏python爬虫日记

python下以api形式调用tesseract识别图片验证码

之前在博文中介绍在python中如何调用tesseract ocr引擎,当时主要介绍了shell模式,shell模式需要安装tesseract程序,并且效率相对...

772
来自专栏林德熙的博客

Roslyn 使用 Directory.Build.props 文件定义编译

本文告诉大家 Directory.Build.props 是什么有什么优点?如何使用 Directory.Build.props 文件定义编译

402
来自专栏王二麻子IT技术交流园地

Linux常用命令100个用法

平时用linux时,我有一个习惯就是把遇到的,比较有用,并且容易忘的命令,放到一个文本文件中,没事的时候可以拿出来看看,这样可以加深映像,时间长了这些命令的用法...

1805
来自专栏landv

Java开发环境笔记

1663
来自专栏Laoqi's Linux运维专列

Php-fpm相关配置

2755
来自专栏青玉伏案

Git知识总览(五) Git中的merge、rebase、cherry-pick以及交互式rebase

上篇博客聊了《git分支管理之rebase 以及 cherry-pick相关操作》本篇博客我们就以Learning Git中的关卡进行展开。下方列举了Learn...

2586
来自专栏HadesMo

Windows远程桌面效率工具:MultiDesk

MultiDesk 是一个选项卡(TAB标签)方式的远程桌面连接 (Terminal Services Client)。

1808
来自专栏吴伟祥

maven-assembly-plugin插件的使用方法

摘自官网:http://maven.apache.org/plugins/maven-assembly-plugin/

511
来自专栏杨建荣的学习笔记

推荐一款工具的借鉴思路

对于批量操作我们一般是怎么使用呢,如果服务器数量不大的情况下,可以使用pssh或者是ansible来做。

713

扫码关注云+社区