知识大全 浅谈如何提高PHP的速度

Posted

篇首语:我们要像海绵一样吸收有用的知识。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 浅谈如何提高PHP的速度相关的知识,希望对你有一定的参考价值。

浅谈如何提高PHP的速度  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

使用PHP的最大 个优势就是速度快 一般情况下 PHP总是具有足够的速度支持Web内容动态生成 许多时候甚至无法找出比它更快的方法 然而 当面对庞大的访问量 高负荷的应用 有限的带宽 以及其他各种带来性能瓶颈的因素时 就需要考虑怎样提高PHP的性能了

代码优化

代码优化不仅仅是写出干净和清晰的代码 而是对代码进行一定的简化 可以使用Zend Optimizer来自动帮助完成这些繁杂的工作 Zend Optimizer可以从Zend Technologies的网站免费得到 但必须同意它的许可约定 因为它不是以GPL方式发行的 它的原理很简单 即通过检测Zend引擎产生的中间代码 并对它进行优化 从而获得更高的执行速度

在使用了Zend Optimizer后 复杂的PHP源程序的执行效率马上会得到显著提高 缺点是优化后的代码可读性下降 给代码修改带来困难

Zend Optimizer的安装方法非常简单 只要根据用户使用的平台 下载相关的预编译版本 把下面2行代码加入到php ini文件中 重新启动Web 服务器就行了:

  • zend_optimizer optimization_level=    
  • zend_extension=″/path/to/ZendOptimizer so″  
  • zend_loader enable=Off  
  • 额外增加的第三行代码是可选的 因为禁用zend_loader将会使优化速度更快 需要注意的是 只有在不使用Zend Encoder Runtime的时候 才可以禁用zend_loader

    使用缓存

    如果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公司开发的另一种免费缓存模块 目前版本是 可以从获得 对于产品应用来说 它的性能很稳定 而且也能在很大程度上提高响应请求的速度

    压缩网页内容

    影响站点的访问速度还有 个重要因素 那就是下载速度 解决的办法就是压缩网页内容 对于纯文本内容而言 HTTP压缩技术可压缩至原大小的 %以下 从而提供 %以上的数据传输节约 虽然Web服务器会因为压缩导致CPU占用的略微上升 但可以节约大量用于传输的网络IO

    根据IETF规范 大部分浏览器都支持使用gzip压缩算法进行内容压缩 也就是说 可以先用gzip压缩网页内容 然后发送到客户端浏览器 浏览器在接收的时候会自动解压数据 再显示页面 这个过程对用户来说 是完全透明的 同样 压缩Web页面的内容也有不同的方法

    Mod_gzip是1种开放源代码的 标准的Apache模块 也叫互联网内容加速模块 可以将它和Apache一起编译 也可以作为DSO使用 相对于普通的浏览过程 它可以节省 %左右的流量 Mod_gzip不仅可以压缩静态的内容 如HTML XML 而且对动态生成的 包括SQL Java WML VRML等产生的内容 在服务器端进行实时压缩并传输 其压缩效率惊人 一般都为 %~ %

    压缩动态网页的内容 还可以使用class gzip来对 php文件编码 class gzip通过在PHP脚本的开头和结尾调用它的一些函数来压缩网页内容 如果整个站点都需要这样的压缩 可以在php ini文件中的auto_prepend和auto_append中调用这些函数 但是会占用一定的系统开销

    PHP 推出了 种新的输出缓冲的处理手段—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图象

     其它技巧

    在编程时 使用一些小技巧也可以加快PHP的运行速度

    ( )用i+= 代替i=i+ 既符合c/c++的习惯 效率相对还更高

    ( )尽可能使用PHP内部函数

    ( )能使用单引号字符串时 尽量使用单引号字符串 单引号字符串的效率要高于双引号字符串

    cha138/Article/program/PHP/201405/30772

    相关参考

    知识大全 浅谈PHP5中垃圾回收算法(Garbage Collection)的演化

    浅谈PHP5中垃圾回收算法(GarbageCollection)的演化  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶

    知识大全 提升PHP执行速度全攻略分析

    提升PHP执行速度全攻略分析  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  PHP的优点之一是速

    知识大全 ASP.NET比拼PHP,谁是速度之王

    ASP.NET比拼PHP,谁是速度之王?  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  ASPN

    知识大全 浅谈怎样有效提高阅读能力

    浅谈怎样有效提高阅读能力浅谈如何提高小学生的自主阅读能力中华民族有着五千年辉煌灿烂的优秀文化,传统文化博大精深。语文教学是学校教育的一个重要组成部分。语文是一门工具性学科,语文教学的基本任务就是指导学

    知识大全 浅谈如何指导学生提高短文改错的能力与技巧

    浅谈如何指导学生提高短文改错的能力与技巧搭配不当提高能力,技巧不是提高的可以修改为;浅谈如何指导学生提高短文改错的能力.如何指导学生应对新课改高考短文改错课程标准指出“学生是学习的主人。教师是学习活动

    知识大全 浅谈如何提高工作执行力

    浅谈如何提高工作执行力工作执行力是指一个部门及其工作人员贯彻落实上级的战略决策、方针政策和工作部署的操作能力和实践能力,是执行命令、完成任务、达到目标的能力。当前地税工作缺少的不是好思路、好办法、好制

    知识大全 浅谈如何加强会计监督提高企业经济效益

    浅谈如何加强会计监督提高企业经济效益财务管理是企业管理的重要组成部分,始终贯穿于企业管理的全过程。先进的财务管理能够促进企业的健康发展,提高企业的竞争能力。企业的资金运作内容决定着财务管理内容,因此准

    知识大全 浅谈学校如何从管理上提高教育教学质量

    浅谈学校如何从管理上提高教育教学质量一、抓思想作风建设,树立向师德要质量的意识学校要通过多种形式和途径提高教师的思想素质和敬业精神,不断增强教师教学质量荣辱感和培养人才责任感、使命感。学校要旗帜鲜明的

    知识大全 学生怎么写,浅谈如何提高学生的历史学习成绩范文

    学生怎么写,浅谈如何提高学生的历史学习成绩范文古人云:以铜为镜可以正衣冠,以人为镜可以明得失,以古为镜可以知兴替!自古以来人们都非常重视历史,重视历史的借鉴作用.那么如何能让学生提高历史成绩呢?这就需

    知识大全 浅谈如何提高小学语文复习课的教学效率

    浅谈如何提高小学语文复习课的教学效率一、复习内容整体化在上语文复习课时,需要教师把分为几堂课才可以讲解完毕的一篇课文的全部内容串连起来,将零碎难理解的知识形成一个整体,让学生在一个系统的、完整的知识体