|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
当然你可以把你最基本的功能放出来的时候就放出来,比如放到论坛上,让大家都参与, 利用PHP的最大1个优势就是速度快。普通情形下,PHP老是具有足够的速度撑持Web内容静态生成,很多时分乃至没法找出比它更快的办法。但是,当面临复杂的会见量、高负荷的使用、无限的带宽,和其他各类带来功能瓶颈的要素时,就需求思索如何进步PHP的功能了。
1、代码优化
代码优化不单单是写出洁净和明晰的代码,而是对代码停止必定的简化。可使用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。
2、利用缓存
假如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取得。关于产物使用来讲,它的功能很不乱,并且也能在很大水平上进步呼应恳求的速度。
3、紧缩网页内容
影响站点的会见速度还有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图像。
4 其它技能
在编程时,利用一些小技能也能够加速PHP的运转速度:
(1)用i+=1取代i=i+1,既合适c/c++的习气,效力绝对还更高。
(2)尽量利用PHP外部函数。
(3)能利用单引号字符串时,尽可能利用单引号字符串。单引号字符串的效力要高于双引号字符串。
(4)用foreach取代while遍历数组,foreach的效力分明高于while轮回,并且不需求挪用reset函数。
怎么样出来了吧,怎么样自己也可以写出php程序了,虽然离职业和专业的人还有很远,但是好的开始是成功的一半。这个时候改怎么做了呢。现在就是拿1本高手推荐的书,重头到尾读1遍,我说的这个读是自己看。 |
|