最大的网站策划、网站运营、网络营销人才免费学习、培训、认证、展示、交流、工作平台,服务国家经济建设与民族伟大复兴!
网络创业秘籍预定banner

查看完整版本: 让您的PHP引擎全速运转的三个简单绝招

smyysd 2008-7-6 15:39

让您的PHP引擎全速运转的三个简单绝招

作为流行的 Web [wiki]编程[/wiki]语言, [wiki]PHP[/wiki] 的最大优势就是速度。 PHP4 已在这方面做的很好了,您几乎很难找到比他更快的脚本编程语言了。但是假如您的应用负荷很大,而带宽又比较小,或有其他的瓶颈影响您的[wiki]服务器[/wiki]性能,那么,您不妨试试笔者为您开出的几个药方,看看是否灵验。
一、代码优化
 一谈到代码优化,或许您想到的就是整齐明了的代码,但是本文的意思却不是在此,因为假如要寻求速度的话,就要对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 加密程式。
二、缓冲
假如想要更进一步提升速度,我们就需要考虑采用缓冲技术了。有一些可选的解决方案,包括 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 发布的又一个免费模块,看起来似乎能够用于生产环境了。
三、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 激活输出缓冲,并压缩任何输出。假如有什么特别的理由不想让任何的内容都压缩输出的话,能够采用在 .ht[wiki]access[/wiki] 文档中加入下面的行,对对应目录下的文档进行压缩。
php_value output_handler ob_gzhandler
也能够直接在 PHP 代码中加入:
ob_start("ob_gzhandler");
这项压缩技术十分有效,但是对 Netscape Communicator 用户来说,因为不能压缩图像文档,所以看上去没有完整的发送,因此必须关闭对 jpeg 和 gif 文档的压缩,IE 没有这个问题。
结论:
采用本文所讨论的技术应该能改善您的网站性能,但是需要注意的是:
- PHP 可能不是导致瓶颈的原因,仔细检查其他原因(例如:[wiki]数据库[/wiki])
- 您不可能把服务器性能调节到最高状态。因此在埋怨 PHP 及其缓冲之前,考虑是否该升级服务器了,或采用动态负载平衡技术(那可是一大笔银子哦)。
- 不要低估内容压缩,在您 100 Mb 的内部网上面看到 PHP 应用的速度提升时,不要忘记使用调制解调器的用户在哪里埋怨您的 100Kb 的 [wiki]HTML[/wiki] 页面。

以上内容由 华夏名网 收集整理
——利晨科技提供<[url=http://www.idc567.com]http://www.idc567.com[/url]>
江西服务器租用/托管
热线电话:0791-6596997
客服[wiki]QQ[/wiki]:  916602921
联系人:  利晨小李

lianglixin427 2008-7-6 15:59

PHP还不错,就是学起来有难度,所以我选择学得是A[wiki]SP[/wiki]。

smyysd 2008-7-7 16:34

[wiki]ASP[/wiki]也学过,但没有用心::005::
页: [1]
查看完整版本: 让您的PHP引擎全速运转的三个简单绝招