10.1.3 PHP程序性能的优化
(1)代码的优化。
Zend Optimizer是由PHP核心引擎“Zend”的创建者Zend技术公司所开发的免费PHP优化软件。据Zend公司透露,使用这个软件某些情况下至少可以提高性能30%以上!
Zend Technologies的Zend Optimizer是一款非常好的代码优化工具,可以免费从http://www.zend.com的网站上获得。Zend Optimizer的使用方法也非常简单,只要将下载的ZendOptimizer-3.0.2-Windows-i386.exe文件直接运行即可。在Liunx环境下,解压缩后,将其中的ZendOptimizer.so文件拷贝到/usr/local/Zend/lib目录下,然后修改php.ini文件,在最后添加以下几行:
zend_optimizer.optimization_level=15
zend_extension="/usr/local/Zend/lib/ZendOptimizer.so"
设置完成后重启Apache服务器,利用<?php phpinfo();?>,如果显示说明Zend Optimizer工作正常,则表示安装与设置正确。
(2)页面的压缩。
HTTP1.1协议支持页面压缩传送,也就是说服务器把一个页面压缩传送到客户端,然后在客户端将页面解压缩再显示给客户。在服务器端有两种传输方式,一种是页面事先已经压缩好了,传送时只要将压缩页面传送到客户端就行,这种适用于静态网页多的情况。但是对于大多数站点,动态页面比较多,这种方法不太适合,因为很多传到客户端的页面其实是没有用的,是服务器接到客户端用户请求动态产生的,所以就要求每生成一个动态页面都要在传到客户端以前先打包压缩。从PHP的4.0.4版以后,可以在php.ini文件中增加一行配置“output_ handler=ob_gzhandler”,这样每个动态生成的页面在传送到客户端之前都会进行压缩,但是根据PHP官方站点的说明,这个参数不能与“zlib.output_compression=on”参数同时使用,因为容易引起PHP工作不正常,另外它只能压缩PHP程序动态生成的页面,对于大量的静态页面尤其是图像文件就不行了。但是mod_gzip模块为Apache提供了将静态页面在传给客户端以前先压缩的功能,它的压缩比最大能到10,一般情况下可以到3,也就是说网站的传输速率一下提高了3倍多。
(3)缓存文件。
PHP接到用户的请求后不是马上将结果返回给用户,而是经过解释器解释执行后将执行结果返回给客户,这期间通常都要涉及数据库的访问。这样就会出现一个问题,当两个用户访问同一个页面时,系统将分别对两个请求进行操作,但事实上这两个操作可能是一模一样的,这样无形当中增加了系统的负担。所以通常的解决办法是在系统内存中开辟出一段空间,当用户第一次访问页面后将执行结果存放在该内存中,当有用户再一次访问该页面时,系统就将页面直接从内存中调出而不需要重新解释执行,这段内存空间就叫缓存。目前流行的缓存管理程序有两个,一个是FastCGI,另一个是Zend Technologies公司的Zend Cache。FastCGI主要是针对Perl、C、C++等CGI脚本程序设计的,可以有效地利用内存作缓存,来自客户端的请求都会被传送到FastCGI应用服务程序,FastCGI处理用户的请求后将结果返回给用户。一般的CGI程序这时将结束进程自动退出,但是FastCGI进程继续保持,这时它在接到新的用户请求后不必建立新的进程,可以立即处理用户请求,也就是说CGI程序建立进程顺序执行然后退出,而FastCGI程序顺序执行并永远循环。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。