Press "Enter" to skip to content

记一次xhprof安装使用

内容目录

【注】本次安装lnmp环境基于军哥lnmp1.1,linux系统为centos6.5 64bit。

其中phpize,php-config ,php.ini等命令或文件位置请根据你的环境调整

1.获取xhprof

wget http://pecl.php.net/get/xhprof-0.9.4.tgz 
tar zxf xhprof-0.9.4.tgz

2.编译前预处理

在编译xhprof之前,先做一下预处理,生成configure文件;

cd xhprof-0.9.4
cd extension
phpize

3.编译安装

./configure -with-php-config=/usr/local/php/bin/php-config
make &&make install

安装成功

4.配置php.ini

在php的配置文件后面追加,xhprof扩展,php.ini

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

【注】xhprof.output_dir是xhprof分析文件存放地,必须保证可读写权限,建议设置成nginx服务器所有者权限

5.查看运行结果

将实例拷贝到自己到web目录下,进行实例演示:

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

a.运行实例查看效果,在浏览器输入

http://localhost/examples/sample.php

2015-01-24 11.52.49

b.复制上面到运行到结果(http路径),再次放入浏览器,填好前面对应的域名:

http://localhost/xhprof_html/?run=54c3180426573&source=xhprof_foo

2015-01-24 11.58.53

6.发现的坑

上面一张图中中间有[View Full Callgraph],点击后提示failed to execute cmd:” dot -Tpng”. stderr:`sh: dot:command not found`

这个时候我们需要做2件事

a.安装图形化工具

yum install graphviz

b.修改php.ini 里面的disable_functions

在XHprof callgraph_utils.php 文件中的xhprof_generate_image_by_dot方法调用了proc_open()这个方法。一般是用来执行linux命令的类似exec(),system(),php.ini 里面的disable_functions 里面给禁止了,你只要把他给删除了就能正常运行了。

然后我再点击效果如下:

2015-01-24 12.12.06

 

7.对于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% 峰值百分比

 

参考资料
PHP性能优化工具–xhprof安装 http://www.chenglin.name/php/optimization/439.html
failed to execute cmd http://henter.me/post/install-grahpviz-for-dot-command.html
lnmp集成安装包关于graphviz安装  http://blog.sina.com.cn/s/blog_82e393c40101ovzb.html

2 Comments

    • chenjie
      chenjie 2015年1月31日

      感谢炸鱼

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注