语言php由于是脚本语言,在运行时才对高级语言代码解释执行,运行脚本执行所以跟编译语言(如C)比起来php的效率比较低,稍复杂编译语言比较效率的程序执行起来就需要消耗较多的时间。作为网页服务器服务器需要消耗时,低效率意味着消耗更多的服务器资源。所以,有必要服务器消耗必要通过优化php 程序代码来提高效率,减小服务器资源消耗。服务器消耗效率(当然如果你的程序本来就消耗很少执行时间或者你的服消耗执行如果务器足够强,那就不一定要进行优化了)
网上很多文章介绍优化php程序,是通过安装Zend Optimizer之类的加optim 网上之类速软件实现的,但具体网站建设时这种加速是有限的。本文主要从程序代主要本文这种码着手介绍一些优化思路和手段。
程序的抽象层越多,各抽象层分离得越严格,程序效率越严格效率抽象低。
网站建设时最原始的应用于网页的php程序模式莫过于脚本嵌入模式,莫过于应用模式即仅仅在一个网页中需要动态处理或显示数据的地方通过需要数据显示加入标识符嵌入php脚本。一般来说这是php程序员一般来说程序员标识符最早学习的模式,它只有一个抽象层,就是网页,故本文
学习本文模式称其为单层模式。
网站建设时随着网站规模逐渐增大,程序员可能会发现单层模式很难维护,想对程序修改或扩充功能时,会发现代码维护修改非常混乱,感觉无从下手。于是模板类诞生了,它使得一无从下手的网页由两个文件组成:一个php程序文件,一个html模板文组成模板网页件。常用的模板类有PHPLib库带的Template模板类,Smarty模板类等。由templat smarti phplib于加入了额外的处理程序(模板类),程序效率下降了。其实一般情况下,不用函数(一般自己情况最原始的编程方法)比用函数(面向过程)的效率高,而原始效率方法用函数的效率又比对象封装(面向对象)高。所以就算在封装效率所以编译语言中,需要高效率的地方会用C写而不用C ,例如编译语言需要例如FreeBSD操作系统的内核;而需要极端高效的地方还要用汇编写freebsd 需要操作。
为了使程序可以适应多种数据库系统,或者方便随时转换数据库方便系统数据库
系统,常常还会用一个类把跟数据库打交道的函数打交道数据库系统封装起来,这样当转换数据库系统时只要把封装类换掉就数据库这样封装行了,主程序不需要修改。这里又用了一个类,效率又打主程序需要效率折扣了。
上述模板类的使用,使
程序分成两个抽象层:程序层和表使用模板抽象现层。而数据库类的使用又把程序层分为数据接口层和数数据库使用接口据处理层。
项目越庞大,需要分离的抽象层就越多,这样使得分工清这样需要分工晰,方便管理,但是以牺牲程序执行效率为代价。
对于抽象层造成的效率下降,优化的方法有二:减小抽象对于下降效率层、优化抽象层之间的接口。一般地,不应该为了提高效之间接口一般率而盲目减小抽象层,这样会使得代码混乱、难于管理。这样盲目混乱但是不应该为小项目建立过
多的抽象层,除非你有将来把建立将来应该它做得很大的计划。关于如何恰当分割抽象层,本文不作本文关于分割更深入讨论。
对于上文说的两个分层例子,优化抽象层之间的接口分别对于之间接口是模板类和数据库操作类。抽象层接口在程序中需要被频数据库需要操作繁调用,以在不同层之间交换信息,所以层接口是很值得之间接口值得优化的。对于数据库接口类,可能仅仅是封装一些数据库数据库对于接口函数,优化余地恐怕不大。对于模板类,很多时候是有较对于模板恐怕大优化余地的。一般地,模板模型越通用,模板类功能越一般模板通用强大,效率就越低,例如PHPLib库带的Template类就有极大的优化余templat p