服务器租用windows平台下提升php性能的方法
Http://www.Egocbd.com 点击数: 更新时间:2010-8-12 12:14:47
it/)提供的免费缓冲模块。当前还只是beta版,他所做的工作看来和Zend Cache差不多,不过性能的提高就比不上Zend Cache,而且现有的版本不能和Zend Optimizer一起工作,不过他是免费的。
APC(Alternative PHP Cache)是由Community Connect(http://apc.communityconnect.com/)提供的另一个免费模块。他的工作非常稳定,速度也有不少的提高,要注意的是,我还没有找到一个官方的测试数据,这些只是在我的应用上作测试,因此不能下一个结论。
Web内容的压缩
经过以上两个的方法,相信你的PHP应用的性能已得到了非常大的提高,目前该从另一个方面来考虑了:下载速度。如果你的应用只是在公司内跑,所有的客户都使用100Mb/s的以太网连接到服务器,这可能不是个问题,不过如果你的客户中有使用慢速的modem连接的,你就要考虑使用内容压缩这个方法了。根据IETF的规范,大多数的浏览器都支持gzip的内容压缩。这意味着你在将web的内容发给客户的浏览器前,能先使用gzip进行压缩,浏览器在接收的时候就会自动解压数据,并且令用户看到原来的页面。同样,压缩web页面的内容也有几个不同的方法。
mod_gzip是Remote Communications(http://www.phpbuilder.com/columns/www.remotecommunications.com)免费提供的一个Apache模块,他能压缩静态的web页面。他工作得非常好,你只需要将他和apache一起编译就行了(或将他作为一个DSO使用)。Remotecommunications的人说他还能压缩动态的内容,包括mod_php, mod_perl等。不过我尝试了一下,看来并不行。我在mod_gzip的邮件列表中了解到,这个bug将在下一个版本中修正(我想应该是1.3.14.6f版本)。不过你仍然能用他作静态内容的压缩。
不过我们还想压缩动态的内容,因此我们必须找另外的办法。一个办法是使用class.gzip encode.php(http://leknor.com/code/),只要在你的PHP脚本中的开头和结尾调用这个PHP类,就能压缩你的页面内容。如果整个站点都需要这样的压缩,你能在你的php.ini文件中的auto_prepend和auto_append中调用这些函数。他工作得非常好,不过在负载非常重的站点上,他明显会带来一点的系统开销。要周详了解他是怎么工作的,能看一下他的类代码(你至少需要在编译PHP时加入zlib支持)。作者在里面的说明也非常周详,你能得到所有需要了解的东西。
在最近,我也看到了一篇关于PHP输出缓冲的文章。他说的是PHP4.0.4推出了一种新的输出缓冲的处理手段--ob_gzhandler,他的作用和上面
APC(Alternative PHP Cache)是由Community Connect(http://apc.communityconnect.com/)提供的另一个免费模块。他的工作非常稳定,速度也有不少的提高,要注意的是,我还没有找到一个官方的测试数据,这些只是在我的应用上作测试,因此不能下一个结论。
Web内容的压缩
经过以上两个的方法,相信你的PHP应用的性能已得到了非常大的提高,目前该从另一个方面来考虑了:下载速度。如果你的应用只是在公司内跑,所有的客户都使用100Mb/s的以太网连接到服务器,这可能不是个问题,不过如果你的客户中有使用慢速的modem连接的,你就要考虑使用内容压缩这个方法了。根据IETF的规范,大多数的浏览器都支持gzip的内容压缩。这意味着你在将web的内容发给客户的浏览器前,能先使用gzip进行压缩,浏览器在接收的时候就会自动解压数据,并且令用户看到原来的页面。同样,压缩web页面的内容也有几个不同的方法。
mod_gzip是Remote Communications(http://www.phpbuilder.com/columns/www.remotecommunications.com)免费提供的一个Apache模块,他能压缩静态的web页面。他工作得非常好,你只需要将他和apache一起编译就行了(或将他作为一个DSO使用)。Remotecommunications的人说他还能压缩动态的内容,包括mod_php, mod_perl等。不过我尝试了一下,看来并不行。我在mod_gzip的邮件列表中了解到,这个bug将在下一个版本中修正(我想应该是1.3.14.6f版本)。不过你仍然能用他作静态内容的压缩。
不过我们还想压缩动态的内容,因此我们必须找另外的办法。一个办法是使用class.gzip encode.php(http://leknor.com/code/),只要在你的PHP脚本中的开头和结尾调用这个PHP类,就能压缩你的页面内容。如果整个站点都需要这样的压缩,你能在你的php.ini文件中的auto_prepend和auto_append中调用这些函数。他工作得非常好,不过在负载非常重的站点上,他明显会带来一点的系统开销。要周详了解他是怎么工作的,能看一下他的类代码(你至少需要在编译PHP时加入zlib支持)。作者在里面的说明也非常周详,你能得到所有需要了解的东西。
在最近,我也看到了一篇关于PHP输出缓冲的文章。他说的是PHP4.0.4推出了一种新的输出缓冲的处理手段--ob_gzhandler,他的作用和上面