仓酷云

标题: PHP编程:技能:PHP的优化,缓冲,紧缩实践的处理... [打印本页]

作者: 莫相离    时间: 2015-2-4 00:02
标题: PHP编程:技能:PHP的优化,缓冲,紧缩实践的处理...
对我一点用处没有啊,我知道该怎么学,但是我想如何才能更快的学,一周速成,啊不,24小时速成那种,皮皮你有没?   本文提出了适用的PHP的优化,缓冲,紧缩实践的处理计划。
作为盛行的 Web 编程言语, PHP 的最大优势就是速度。 PHP4 已在这方面做的十分好了,你几近找不到比它更快的剧本编程言语了。然而假如你的使用负荷很大,而带宽又对照小,或有其他的瓶颈影响你的办事器功能,那末,你无妨尝尝笔者为你开出的几个药方,看看是不是灵验。
1、代码优化
一谈到代码优化,也许你想到的就是划一了然的代码,然而本文的意思却不是在此,由于假如要追求速度的话,就要对PHP 源码作响应的调剂。普通说来就是去失落过剩的正文,让代码不成读。然而这关于一个具有优秀素养的法式员来讲,几乎就是难以想象的。好在Zend Technologies 公司宣布了 Zend 优化引擎可以匡助你做到这一点。它如今是收费的,然而你必需遵守 Zend Optimizer 允许。这个产物可以对引擎发生的两头代码停止优化。
装置这个引擎对照复杂,下载对应平台的版本今后,解开紧缩文件,然后在 php.ini 文件外面加高低面两行,从头启动 Web 办事器,就弄定了。
zend_optimizer.optimization_level=15
zend_extension="/path/to/ZendOptimizer.so"
zend_loader.enable=Off
假如是 Win32 平台的话就应当是:
zend_optimizer.optimization_level=15
zend_extension_ts="C:\path\to\ZendOptimizer.dll"
zend_loader.enable=Off
啊!没有弄错吧?怎样是三行?其实第三行是可选的。由于看起来把 zend_loader 关失落能进步一点速度,因而值得把这第三行放到 php.ini 。需求注重的是,关失落的条件前提是你没有在利用 Zend 加密法式。
2、缓冲
假如想要更进一步提拔速度,咱们就需求思索采取缓冲手艺了。有一些可选的处理计划,包含 Zend Cache (测试版本), APC, 和 Afterburner Cache,别的还有 jpCache 等。
以上这些都是属于缓冲模块,他们把第一次对 .php 文件恳求发生的两头代码存储在 Web 办事器的内存中,然后对今后的恳求前往“编译好”的版本。由于如许削减了磁盘读写,并且都在内存任务,所以这个进程能明显提拔使用功能,
现成的这类产物对照多,究竟选择谁呢?
Zend Cache 是一款不错的贸易产物,在第一次加载那些很大的 PHP 页面后,你会分明感触感染到速度的提拔,办事器会留出更多的资本。惋惜这个产物是要花银子的,然而在有些情况下,你可不要小气这些银子。
Afterburner Cache 是 Bware Technologies 的产物,今朝还处于 Beta 版本,看起来仿佛和 Zend Cashe 一样,然而它不克不及到达 Zend Cache 那样好的后果,也不克不及和 Zend 优化引擎一同任务,然而它是收费的,所以我采取了这个模块。
APC (Alternative PHP Cache) 是 Community Connect 宣布的又一个收费模块,看起来仿佛可以用于临盆情况了。
3、Web 内容紧缩
关于日趋拥堵的收集来讲,勤俭带宽就像勤俭用水一样是非常值得倡始的。依据IETF 尺度,大多半阅读器应当撑持利用 gzip 紧缩的内容。也就是说你可以把用 gzip 紧缩的内容发送给阅读器,阅读器会通明的解压数据。
mod_gzip 是 Remote Communications 公司推出的收费 Apache 模块,能把静态的Web 内容紧缩后发送给阅读器。关于大多半静态网页来讲,这个模块非常适合。虽然
Remotecommunications 公司的人说这个模块撑持一切那些 mod_php, mod_perl,mod 甚么发生的静态内容,然而看起来仍是不克不及任务,从 mod_gzip 的邮件列表来看,这个成绩估量要到1.3.14.6f 才干处理。
假如要紧缩静态内容的话,咱们可以采取class.gzip_encode.php,一个在剧本入手下手和停止时利用的 PHP 类。对全部网站来讲就是在 php.ini 的 auto_prepend 和 auto_append 中挪用个中的函数。具体你可以浏览这个类的法式,这个法式正文得很好,作者几近把甚么都告知你了。不外利用之前,你的 PHP 要编译为撑持 zlib。
关于 PHP 4.0.4 来讲,一个新的处理计划就是利用 ob_gzhandler,能到达和下面的类一样的后果,只需复杂的在 php.ini 到场上面这句话就能够了:
output_handler = ob_gzhandler ;
这能让 PHP 激活输入缓冲,并紧缩一切输入。假如有甚么特别的来由不想让一切的内容都紧缩输入的话,可以采取在 .htaccess 文件中到场上面的行,对对应目次下的文件停止紧缩。
php_value output_handler ob_gzhandler
也能够直接在 PHP 代码中到场:
ob_start("ob_gzhandler");
这项紧缩手艺非常无效,然而对 Netscape Communicator 用户来讲,由于不克不及紧缩图形文件,所以看上去没有完姆⑺停虼吮匦牍乇斩?jpeg 和 gif 文件的紧缩,IE 没有这个成绩。
结论:
采取本文所会商的手艺应当能改良你的网站功能,然而需求注重的是:
- PHP 能够不是招致瓶颈的缘由,细心反省其他缘由(例如:数据库)
- 你不成能把办事器功能调理到最高形态。因而在抱怨 PHP 及其缓冲之前,思索是不是该晋级办事器了,或采取静态负载均衡手艺(那可是一大笔银子哦)。
- 不要低估内容紧缩,在你 100 Mb 的外部网下面看到 PHP 使用的速度提拔时,不要健忘利用调制解调器的用户在哪里抱怨你的 100Kb 的 HTML 页面。
我先把我自己学习PHP的过程做一下概括:
作者: 乐观    时间: 2015-2-4 08:05
要进行开发,搭建环境是首先需要做的事,windows下面我习惯把环境那个安装在C盘下面,因为我配的环境经常出现诡异事件,什么事都没做环境有的时候就不能用啦。
作者: 透明    时间: 2015-2-6 21:15
刚开始安装php的时候,我图了个省事,把php的扩展全都打开啦(就是把php.ini 那一片 extension 前面的冒号全去掉啦),这样自然有好处,以后不用再需要什么功能再来打开。
作者: 金色的骷髅    时间: 2015-2-18 19:34
装在C盘下面可以利用windows的ghost功能可以还原回来(顺便当做是重转啦),当然啦我的编译目录要放在别的盘下,不然自己的劳动成果就悲剧啦。
作者: 海妖    时间: 2015-2-24 06:47
使用zendstdio 写代码的的时候,把tab 的缩进设置成4个空格是很有必要的
作者: 分手快乐    时间: 2015-2-28 23:01
至于模板嘛,各位高人一直以来就是争论不休,我一只小菜鸟就不加入战团啦,咱们新手还是多学点东西的好。
作者: 再见西城    时间: 2015-3-5 06:27
微软最近出的新字体“微软雅黑”,虽然是挺漂亮的,不过firefox  支持的不是很好,所以能少用还是少用的好。
作者: 蒙在股里    时间: 2015-3-8 21:35
要进行开发,搭建环境是首先需要做的事,windows下面我习惯把环境那个安装在C盘下面,因为我配的环境经常出现诡异事件,什么事都没做环境有的时候就不能用啦。
作者: admin    时间: 2015-3-13 01:08
小鸟是第一次发帖(我习惯潜水的(*^__^*) 嘻嘻……),有错误之处还请大家批评指正,另外,前些日子听人说有高手能用php写驱动程序,真是学无止境,人外有人,天外有天。
作者: 仓酷云    时间: 2015-3-15 09:47
至于模板嘛,各位高人一直以来就是争论不休,我一只小菜鸟就不加入战团啦,咱们新手还是多学点东西的好。
作者: 莫相离    时间: 2015-3-21 19:20
php是动态网站开发的优秀语言,在学习的时候万万不能冒进。在系统的学习前,我认为不应该只是追求实现某种效果,因为即使你复制他人的代码调试成功,实现了你所期望的效果,你也不了解其中的原理。
作者: 深爱那片海    时间: 2015-3-26 19:08
php里的数组为空的时候是不能拿来遍历的;(这个有点低级啊,不过我刚被这个边界问题墨迹了好长一会)
作者: 老尸    时间: 2015-4-4 19:09
爱上php,他也会爱上你。
作者: 因胸联盟    时间: 2015-4-8 03:31
本人接触php时间不长,算是phper中的小菜鸟一只吧。由于刚开始学的时候没有名师指,碰过不少疙瘩,呗很多小问题卡过很久,白白浪费不少宝贵的时间,在次分享一些子的学习的心得。
作者: 变相怪杰    时间: 2015-4-10 22:24
建议加几个专业的phper的群,当然啦需要说话的人多,一处一点问题能有人回答你的,当然啦要让人回答你的问题,平时就得躲在里面聊天,大家混熟啦,愿意回答你问题的人自然就多啦。
作者: 柔情似水    时间: 2015-4-11 15:09
其实没啥难的,多练习,练习写程序,真正的实践比看100遍都有用。不过要熟悉引擎
作者: 飘灵儿    时间: 2015-4-12 19:25
使用 jquery 等js框架的时候,要随时注意浏览器的更新情况,不然很容易发生框架不能使用。
作者: 谁可相欹    时间: 2015-4-13 07:09
基础有没有对学习php没有太大区别,关键是兴趣。
作者: 第二个灵魂    时间: 2015-4-14 17:47
Ps:以上纯属原创,如有雷同,纯属巧合
作者: 小魔女    时间: 2015-4-21 05:01
其实没啥难的,多练习,练习写程序,真正的实践比看100遍都有用。不过要熟悉引擎




欢迎光临 仓酷云 (http://ckuyun.com/) Powered by Discuz! X3.2