PHP网页编程之浅谈若何进步PHP的速度
当然你可以把你最基本的功能放出来的时候就放出来,比如放到论坛上,让大家都参与, 利用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遍,我说的这个读是自己看。 小鸟是第一次发帖(我习惯潜水的(*^__^*) 嘻嘻……),有错误之处还请大家批评指正,另外,前些日子听人说有高手能用php写驱动程序,真是学无止境,人外有人,天外有天。 本文当是我的笔记啦,遇到的问题随时填充 刚开始安装php的时候,我图了个省事,把php的扩展全都打开啦(就是把php.ini 那一片 extension 前面的冒号全去掉啦),这样自然有好处,以后不用再需要什么功能再来打开。 环境搭建好,当你看见你的浏览器输出“it works\\\\\\\"时你一定是喜悦的。在你解决问题的时候,我强烈建议多读php手册。 有位前辈曾经跟我说过,phper 至少要掌握200个函数 编起程序来才能顺畅点,那些不熟悉的函数记不住也要一拿手册就能找到。所以建议新手们没事就看看php的手册(至少array函数和string函数是要记牢的)。 说php的话,首先得提一下数组,开始的时候我是最烦数组的,总是被弄的晕头转向,不过后来呢,我觉得数组里php里最强大的存储方法,所以建议新手们要学好数组。 最后祝愿,php会给你带来快乐的同时 你也会给他带来快乐。 个人呢觉得,配wamp 最容易漏的一步就是忘了把$PHP$目录下的libmysql.dll拷贝到windows系统目录的system32目录下,还有重启apache。 在我安装pear包的时候老是提示,缺少某某文件,才发现 那群extension 的排列是应该有一点的顺序,而我安装的版本的排序不是正常的排序。没办法我只好把那群冒号加了上去,只留下我需要使用的扩展。 开发工具也会慢慢的更专业,每个公司的可能不一样,但是zend studio是个大伙都会用的。 对于初学者来说不推荐去拿钱买的。当然如果一个网站你经常去用,而且里面的资料也比较有用,最好还是买个会员比较好,毕竟那些也是别人的工作成果。 实践是检验自己会不会的真理。 建数据库表的时候,int型要输入长度的,其实是个摆设的输入几位都没影响的,只要大于4就行,囧。 本文当是我的笔记啦,遇到的问题随时填充 写的比较杂,因为我也是个新手,不当至于大家多多指正。 环境搭建好,当你看见你的浏览器输出“it works\\\\\\\"时你一定是喜悦的。在你解决问题的时候,我强烈建议多读php手册。 有时候汉字的空格也能导致页面出错,所以在写代码的时候,要输入空格最好用引文模式。 再就是混迹于论坛啦,咱们的phpchina的论坛就很强大,提出的问题一般都是有达人去解答的,以前的帖子也要多看看也能学到不少前辈们的经验。别的不错的论坛例如php100,javaeye也是很不错的。
页:
[1]