后端的性能与很多因素有关,这里主要介绍与程序有关系的一些优化策略。
首先需要确定PHP性能瓶颈在那里
我们可以通过XDebug+KCacheGrind来分析性能占用情况
安装XDebug 和 KCacheGrind
XDebug在ybsd的安装::yinst i yphp_xdebug / apt-get install xdebug
KCacheGrind需要KDE的支持,在Unbuntu与Debian的安装命令:
sudo apt-get install kcachegrind
Xdebug:
http://xdebug.org/
KcacheGrind:
http://kcachegrind.sourceforge.net/cgi/bin/
设置XDebug
sudo vim /home/y/etc/php/xdebug.ini
xdebug.profiler_append=0
;是否覆盖上次产生的文件
xdebug.profiler_enable=1
;打开效能监测器。
xdebug.profiler_enable_trigger=0
xdebug.profiler_output_dir=/tmp
通过KCacheGrind查看
在xdebug.profiler_output_dir指定的目录里。会产生类似于cachegrind.out.xxxxx的一串数字的文件。
用kCacheGrind打开就可以看到如下的界面了。
这个页面上包含了各个函数执行占用的时间与比例的详细分布情况。
通过这个方法可以很快找到性能的瓶颈。
通过microtime来定位
XDebug+KCacheGrind能很直观的反映一些函数的调用情况,对于有环境,并且有条件的情况时,很方便总体的了解性能分布情况。
使用microtime则可以随心所欲的对各个细节与总体建立分析,不受其它环境的限制,只要装了PHP的环境就可以用。
定义一个专门用于时间记录的数组。假设为$ts = array();
用microtime()得到系统各个执行的时间戳,$ts[i] = microtime();
然后通过对$ts进行处理,找出相邻的执行时间最长的,及比较长的。
通过对$ts的处理,可以确定所有逻辑模块占用的时间,或者占用的比例。
土方法,很实用。
PHP性能优化的工具与方式介绍
对PHP的性能优化的方法可以包含有缓存,优化代码,重写服务器程序等一些技术。
将PHP编译的代码进行缓存:
这一类的缓存工具目前有很多,包括有:
PHP代码的优化经验:
初始化变量后再使用。避免php解析器报错。
对于引用两次以上的全局变量或者类的属性,将它赋值给局部变量。