北漂IT民工 的博客

PHP的一些性能调优方法

后端的性能与很多因素有关,这里主要介绍与程序有关系的一些优化策略。

首先需要确定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解析器报错。

对于引用两次以上的全局变量或者类的属性,将它赋值给局部变量。