位置:首页  >   后端编程  > XHprof安装和测试

XHprof安装和测试

参考链接:

http://my.oschina.net/leslee/blog/124745


一、XHProf安装
此方法是将XHProf作为扩展模块安装,很简单
wget http://pecl.php.net/get/xhprof-0.9.2.tgz
tar xzvf xhprof-0.9.2.tgz
cd xhprof-0.9.2/extension/
cp -r xhprof_html xhprof_lib /var/www/html/
/usr/local/webserver/php/bin/phpize
./configure --with-php-config=/usr/local/webserver/php/bin/php-config
make 
make install


注意:修改自己的PHP安装路径,及xhprof性能展示的页面定位到/var/www/html/目录。


安装完毕后,会提示:
Installing shared extensions  /usr/local/webserver/php/lib/php/extensions/no-debug-non-zts-20060613/


修改php.ini,以添加xhprof.so
extension_dir = "/usr/local/webserver/php/lib/php/extensions/no-debug-non-zts-20060613/"


extension=xhprof.so
xhprof.output_dir=/var/logs/xhprof


分析日志输出在/var/logs/xhprof目录。


重新加载php配置文件或重启web,搞一个phpinfo页面,看到输出中是否有了xhprof信息,如果有输出xhprof的信息就说明模块加载正确,我的是这样的信息:
xhprof    0.9.2
CPU num    4


二、安装graphviz画图工具
下面还需要安装graphviz画图工具,用于显示xhprof的图表输出,方便查看
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
make && make install


三,XHProf测试
XHProf自带了一个sample.php测试的例子,稍微修改一下就可以使用了
cp -rf examples/ /var/www/html/


修改sample.php让它也显示cpu和内存信息
vim /var/www/html/examples/sample.php
将xhprof_enable()改为 
xhprof_enable(XHPROF_FLAGS_CPU + XHPROF_FLAGS_MEMORY)


将最后一段echo一行修改为:
echo '<a href="/xhprof_html/index.php?run='.$run_id.'&source=xhprof_foo" target="_blank">count</a>';


可是,当我查看[View Full Callgraph]的时候,却提示如下: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.,这TMD神马玩意?是什么错呢?
关于dot的介绍,xhprof在这里写出来了:
http://mirror.facebook.net/facebook/xhprof/doc.html

dot (image generation utility): The callgraph image visualization ([View Callgraph]) feature relies on the presence of Graphviz “dot” utility in your path. “dot” is a utility to draw/generate an image for a directed graph.

GOOGLE了半天,也没找到可用的信息。问了下群里的同学,大牛老王告 诉俺,xhprof绘制的是png图,系统(graphviz-2.24.0)不支持。才知道绘图的dot拓展没装成功。我的操作系统是UBUNTU 10.10 SERVER版的,也就是dot 不支持PNG。赶紧再次编译下graphviz,看看提示信息有什么缺少的。果然:

01 options:
02   cgraph:        No (disabled by default - experimental)
03   codegens:      No (disabled by default - deprecated)
04   digcola:       Yes
05   expat:         No (missing library)
06   fontconfig:    No (missing fontconfig-config)
07   freetype:      No (missing freetype-config)
08   glut:          No (missing GL/glut.h)
09   gts:           No (gts library not available)
10   ipsepcola:     No (disabled by default - C++ portability issues)
11   ltdl:          Yes
12   ortho:         No (disabled by default - experimental)
13   png:           No (missing png.h)

png: No (missing png.h)果然。。。。
赶紧到libpng官网down分源码,再次编译一下。
SF.NET上地址是 http://sourceforge.net/projects/libpng/files/libpng15/1.5.1/,我下的是http://sourceforge.net/projects/libpng/files/libpng15/1.5.1/libpng-1.5.1.tar.gz/download ,一气呵成,很顺利。
再次编译graphviz的时候,提示如下:

1 ortho:         No (disabled by default - experimental)
2  png:           Yes
好了,内牛满面。之后就是 make&make install了。

0
文章属性
精彩评论