日期:2012-02-22 10:51:00 来源:本站整理
怎样提高php运行速度[服务器安全]
本文“怎样提高php运行速度[服务器安全]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
利用PHP的最大1个上风就是速度快.普通情形下,PHP老是具有充足的速度支持Web内容动态生成,很多时刻乃至无法找出比它更快的办法.但是,当面对宏大的拜候量、高负荷的利用、有限的带宽,以及其他各种带来性能瓶颈的因素时,就需求考虑怎样提高PHP的性能了.
步骤/办法
-
代码优化
代码优化不但仅是写出干净和清楚的代码,而是对代码举行一定的简化.可以利用Zend Optimizer来自动帮忙完成这些复杂的工作.Zend Optimizer可以从Zend Technologies的网站http://www.zend.com/免费得到,但必须赞成它的答应约定,因为它不是以GPL方法发行的.它的原理很 简单,即通过检测Zend引擎产生的中间代码,并对它举行优化,从而得到更高的履行速度.
在利用了Zend Optimizer后,复杂的PHP源程序的履行效率即刻会得到明显提高,缺陷是优化后的代码可读性下降,给代码改正带来艰难.
Zend Optimizer的安装办法非常简单,只要按照用户利用的平台,下载相关的预编译版本,把下面2行代码加入到php.ini文件中,重新启动Web 服务器就行了:
zend_optimizer.optimization_level=15
zend_extension=″/path/to/ZendOptimizer.so″
zend_loader.enable=Off
额外增添的第三行代码是可选的,因为禁用zend_loader将会使优化速度更快.需求注意的是,只有在不利用Zend Encoder Runtime的时刻,才可以禁用zend_loader. -
利用缓存
假如PHP程序的规模很大,那么提高速度的办法就是利用缓存.目前已经有很多缓存筹划可供挑选,此中包含Zend Cache、APC和Afterburner Cache.
上面这几种都是“缓存模块”(caching modules).第一次调用PHP文件时,缓存模块从PHP源代码生成一些中间代码,并把这些中间代码存储在Web服务器的内存中.今后再调用这些文件 时,便可以直接利用内存中“编译”过的代码.这种办法确切可以改进利用的性能,因为它使得磁盘拜候量减低到了最少的程度(代码已经读取和解析),代码直接 在内存中运行,使得服务器呼应恳求的速度大大提高.
当然,缓存模块还会监督PHP源文件的改变,必要时会重新缓存页面,从而避免用户得到的页面仍旧由过期的PHP代码生成.由于缓存模块可以明显地降低服务器的负载,提高PHP利用的呼应效率,因此它们非常合适于负载较大的网站利用.
Zend Cache是Zend Technologies公司开辟的商业软件.在第一次运行后,PHP页面的运行速度立即会有很大的提高,服务器的闲暇资源也更多了.缺陷是它不是免费的,但性价比还是很高的.
Afterburner Cache是Bware Technologies公司开辟的免费缓存模块.功效与Zend Cache基本一样,但提高性能方面比不上Zend Cache.
APC(Alternative PHP Cache)是由Community Connect公司开辟的另一种免费缓存模块,目前版本是2.0.4,可以从http://pecl.php.net/package/APC得到.关于 产品利用来说,它的性能很安定,并且也能在很大程度上提高呼应恳求的速度. -
紧缩网页内容
影响站点的拜候速度还有1个重要因素,那就是下载速度.办理的办法就是紧缩网页内容.关于纯文本内容而言,HTTP紧缩技术可紧缩至原大小的40%以 下,从而供应60%以上的数据传输节俭.固然Web服务器会因为紧缩招致CPU占用的略微上升,但可以节俭大量用于传输的网络IO.
按照 IETF标准,大部份浏览器都支持利用gzip紧缩算法举行内容紧缩.也就是说,可以先用gzip紧缩网页内容,然后发送到客户端浏览器,浏览器在接纳的 时刻会自动解压数据,再显示页面.这个历程对用户来说,是完好透明的.一样,紧缩Web页面的内容也有差别的办法.
Mod_gzip是1种开 放源代码的、尺度的Apache模块,也叫互联网内容加快模块.可以将它和Apache一同编译,也可以作为DSO利用.相关于普通的浏览历程,它可以节 省40%左右的流量.Mod_gzip不但可以紧缩静态的内容,如HTML、XML,并且对动态生成的,包含SQL、Java、WML、VRML等产生的 内容,在服务器端举行及时紧缩并传输,其紧缩效率惊人,普通都为60%~85%.
紧缩动态网页的内容,还可以利用class.gzip来 对.php文件编码,class.gzip通过在PHP脚本的开首和末尾调用它的一些函数来紧缩网页内容.假如整个站点都需求这样的紧缩,可以在 php.ini文件中的auto_prepend和auto_append中调用这些函数,但是会占用一定的系统开销.
PHP4.0.4推出了1种新的输出缓冲的处理手段—ob_gzhandler,它的作用和class.gzip完好一样,辨别是可以直接把它加到php.ini 文件中,语法以下:
output_handler = ob_gzhandler;
这样将激活PHP的输出缓冲功效,并在发送内容前举行紧缩.假如不想在这里设置,只在需求的地方才改变这个默许设置(不紧缩),只要在需求紧缩的PHP源程序目录中,改正一下.htaccess文件就行了,语法以下:
php_value output_handler ob_gzhandler
大概直接在PHP代码中调用它:
ob_start(″ob_gzhandler″);
输出缓冲的效果确切很抱负,并且不会为服务器带来额外的系统开销.要注意的一点是Netscape Communicator不支持图象的紧缩.因此除非知道拜候者都利用Internet Explorer,不然必须禁止紧缩jpeg和gif图象. -
别的本领
在编程时,利用一些小本领也可以加快PHP的运行速度:
(1)用i+=1替换i=i+1,既符合c/c++的习惯,效率相对还更高.
(2)尽大概利用PHP内部函数.
(3)能利用单引号字符串时,尽大概利用单引号字符串.单引号字符串的效率要高于双引号字符串.
(4)用foreach替换while遍历数组,foreach的效率明显高于while循环,并且不需求调用reset函数.
注意事项
利用第四个办法时要注意代码的严谨性、安全性、不是全部的程序都适实用第四种方法优化以上是“怎样提高php运行速度[服务器安全]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |
评论内容只代表网友观点,与本站立场无关!
评论摘要(共 0 条,得分 0 分,平均 0 分)
查看完整评论