XHProf安装和测试

最近一直在优化网站性能,发现网站的页面永远达不到别人的那么快速,一直都觉得是代码的问题,但是开发老回避这个问题。一定的解决这个问题。


解决方案:
系统环境是典型的LAMP环境,一开始习惯性想到用Xdebug,后来放狗搜了一下,FB的XHProf不错,打算用上。写篇文章备份上,突然没找到地方,刚好开着这个站,算球写这儿吧。


一、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>';


XHProf输出说明
1. Inclusive Time : 包括子函数所有执行时间。
2. Exclusive Time/Self Time : 函数执行本身花费的时间,不包括子树执行时间。
3. Wall Time : 花去了的时间或挂钟时间。
4. CPU Time : 用户耗的时间+ 内核耗的时间
5. Inclusive CPU : 包括子函数一起所占用的CPU
6. Exclusive CPU : 函数自身所占用的CPU


因为网站的程序用CI,直接在CI的index里直接加上,在load_view下封装一个showpage,在showpage里增加测试环境适配,在测试环境下增加profile。

你可能感兴趣的:(xhprof)