基于php的缓存应用方案性能分析与对比

基于php的缓存应用方案性能分析与对比

ID:1233635

大小:374.76 KB

页数:9页

时间:2017-11-09

基于php的缓存应用方案性能分析与对比_第1页
基于php的缓存应用方案性能分析与对比_第2页
基于php的缓存应用方案性能分析与对比_第3页
基于php的缓存应用方案性能分析与对比_第4页
基于php的缓存应用方案性能分析与对比_第5页
资源描述:

《基于php的缓存应用方案性能分析与对比》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、http://www.paper.edu.cn基于PHP的缓存应用方案性能分析与对比吴明洲,孙文生北京邮电大学电信工程学院,北京(100876)E-mail:lyingkisser@gmail.com摘要:PHP是一种解释型的脚本语言,主要用于WEB的服务端,在当今LAMP平台及类似平台中具有十分重要的地位,其执行效率直接关系到网站的响应时间和用户体验,因此,采用一种合适的缓存应用方案,对PHP执行代码或执行过程中频繁读取的变量进行缓存,是LAMP平台优化的关健环节。本文通过对四种主流PHP缓存应用方案的性能

2、分析和对比,给出一种最优的PHP缓存应用方案。关键词:LAMP,PHP,缓存,优化1.引言近年来,随着互联网的持续升温和web2.0技术的不断发展,各种基于PHP动态脚本技术应用的网站层出不穷,从大型的门户网站,到各处各样的论坛和博客系统,再到引来无数关注的视频分享网站,都大量架构在LAMP平台,采用PHP作为其后台的业务逻辑处理语言。但是,这些网站随着访问量的快速上升,服务器的系统负载越来越重,访问速度变得越来越慢。因此,有些软件开发工程师开始研究并着手开发PHP的缓存应用系统,即把编译好的PHP代码缓存进

3、内存中,从而可以在下次访问时,PHP脚本不需要重新编译而是从内存中直接得到执行,或者把需要反复存取的变量放在共享内存中,可以大大加快网站的访问速度,减少系统的运行负载。然而,由于LAMP架构都是开源免费的,这样一来,不管是PHP还是apache,他们不同版本所支持的特性就很可能发生不小的变化,由于PHP缓存器是直接依赖PHP而开发的,当PHP的发行版本发生变化时,过去老的PHP缓存器很可能无法和新的PHP版本兼容,这样一来,对于一个特定版本的PHP,选择哪一种既稳定也有着良[1]好性能表现的PHP缓存器,往往

4、是一个难题。本文将在LAMP平台上面,通过对eaccelerator,[2][3][4]xcache,memcache,apc这四种主流PHP缓存应用系统的性能测试和比较,给出一个在实际应用环境下的最合理的解决方案。2.PHP缓存的基本概念[5]由于PHP的语言特性,由PHP编写的脚本程序,客户端请求一次,服务端调用PHP解析器执行一次,所有的变量在当前的脚本文件执行完毕以后全部释放,在下次装载执行时再重新建立。因此,在这个过程中,可以把需要执行的脚本程序以某种形式预编译进内存中,当下次请求同一文件时,直接使

5、用缓冲区已编译的代码去执行从而提高速度。这就是PHP二进制代码缓存(opcodecache)的概念。此外,某些需要反复读取的变量,比如,从数据库检索出浏览次数最多新闻在首页面中显示,传统的做法是每请求一次首页面,首页面执行一次数据库操作,取出当前浏览次数最多新闻,并在页面中显示出来。即页面每被访问一次,相同的数据库查询就会执行一次。这样做,虽然可以实现实时性,但当首页访问量比较大时,服务器的负载会非常严重。这时,可以对这种变量进行缓存,并设定一个缓存过期的期限,没有超过这个期限时,数据直接从缓存中读取,超过这

6、个期限时,数据从数据库中获取,再重新写入到缓存。这就是变量缓存的概念。-1-http://www.paper.edu.cn3.PHP缓存的主要分类从上面的描述中可以看出,PHP缓存主要分为二进制代码缓存和变量缓存,二进制代码缓存,即opcodecache,是通过把解释性的脚本语言预编译为二进制状态并写入内存中,下次执行时可略过编译步骤,直接从内存中执行相关代码,提高代码自身的执行效率。变量缓存则是把变量在一定期限内缓存进某种缓存介质中去,这种缓存介质可以是内存,磁盘。当前开源的提供二进制预编译缓存功能的缓存器

7、有eaccelerator,xcache,apc。提供以内存为缓存介质的变量缓存的缓存器有eaccelerator、xcache、memcached、apc,这其中,同时又支持分布式应用缓存的,即可以把缓存介质部署在支持物理分离的多台服务器,只有memcached。下面就这几种缓存器逐一进行分析和对比。4.几种主流开源PHP缓存的简要介绍4.1eaccelerator4.1.1基本介绍eaccelerator(以下简称为eacc),是一个开源的opcode缓存器/优化器,诞生于2004年12月。它是Turck

8、MMCache项目的延伸,可以对整个页面,或者一段执行代码,甚至只是一个变量进行缓存。目前支持PHP4.X,PHP5.X,兼容ZendOptimizer,不支持分布式的内容缓存。4.1.2安装说明下载eaccelerator-0.9.5.1.tar.bz2#tar-zxvfeaccelerator-0.9.5.1.tar.bz2//解压缩安装包#cdeaccelerator-0.9.5.1//进入安

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。