温馨提示: 请在Chrome、Firefox等现代浏览器浏览本站。

PHP机能如何实现周全优化,程序员可深切学习下

php技术 admin 评论

机能是网站运行是不是良好的要害因素, 网站的机能与效率影响着公司的运营成本及长远生长,编写出高质高效的代码是我们每一个开发人员必备的本质,也是我们良好的职业素养。那

机能是网站运行是不是良好的要害因素, 网站的机能与效率影响着公司的运营成本及长远生长,编写出高质高效的代码是我们每一个开发人员必备的本质,也是我们良好的职业素养。那末如何优化PHP机能呢?

PHP机能如何实现周全优化,程序员可深切学习下

一、变量(重要)

1)、 变量大小,注意变量大小是节约内存的最有效手段,对付来自用户表单、数据库和文件缓存的数据都需要节制变量的大小。 因为cpu要处理的数据是来源于内存

2)、 变量有效期,使用unset()函数刊出不需要的变量是一种良好的习惯,将一些不需要的变量立即刊出可提高内存的使用率。

3)、 复制变量,尽量不要复制变量,不然就会带来1倍的内存消耗,即使复制变量也应该要立即刊出原有变量。

4)、 变量类型,初始化变量请注意其变量类型,一个变量在执行历程中最好只有一种类型状态。对付数组变量,请初始化声明,以下: $a = array();

5)、 临时变量,是处理业务逻辑的临时存储,这些都是需要消耗内存的。如果临时变量使用结束请立即刊出,特别是在一些历程式代码的执行流程中,对付一些函数,如果业务异常复杂,同样需要立即刊出临时变量

6)、 静态变量,对付一些需要由复杂业务产生的变量,如果在程序的执行历程中屡次产生并使用,可考虑使用静态变量,减少程序的cpu执行次数

7)、 变量的机能:局部变量>全局变量>类属性>未定义的变量。

1)、 尽量减少循环的次数。

2)、 尽量减少循环的潜逃的层次,不要超过三层。

3)、 避免在循环内有过量的业务逻辑。

4)、 不要循环包含文件

5)、 不要循环执行数据库操作。

6)、 优先使用foreach,它比for/while效率高

7)、 不要把 count/strlen/sizeof 放到 for 循环的条件语句中 For($i=0,$count=count($array);$i<$count;$i++){} 不要使用for($i=0;$i

8)、 for($i=$total;$i>0;$i–){}机能好过for($i=0;$i<$total;$–){}

9)、 保持循环体内的业务逻辑清晰

PHP机能如何实现周全优化,程序员可深切学习下

到了这里可能很多人会觉得不够系统, 没关系,我为大家准备了一套精品PHP教程,里面涵盖PHP机能优化,MySQL机能优化,Nginx,YII2,laravel学习教程,如果你已经会了,想要精通进阶中高级PHP,我这里也有专注于PHP中高级进阶的教程,点击下方题目链接即可获得要领!

全套laravel框架、ThinkPHP框架全套教程分享,PHP程序员福利!

PHP开发三年只懂增删改查?那是你没有计划好php学习路线

3、 函数(重要)

1)、 函数职责清晰,一个函数只干一件事,不要杂揉过量的业务逻辑

2)、 函数代码体不要超过20行,反之,考虑拆分。

3)、 优先使用php内置函数

4)、 常量与函数同时能干一件事,优先使用常量。

例如:

 · phpversion() < PHP_VERSION · get_class() < __CLASS__ · is_null() < NULL ===

5)、 echo 的机能好过print,输入多个变量的时候用echo $str,$str1,不用.连接符

6)、 $_SERVER[REQUEST_TIME]替换time();

7)、 字符串替换strtr()->str_replace()->preg_replace()->epreg();

8)、 施展trim最大成果,替换substr。$filepath=trim($filename,’/’).’/’;

9)、Isset/empty 虽然两个函数功能有所差异,但在同样的情况下推荐使用 empty()

10)、isfile/file_exist 两个函数的功能有所不同,file_exist既可判断文件是不是存在,也可以判断目录是不是存在,在同样的情况下推荐使用is_file

PHP机能如何实现周全优化,程序员可深切学习下

4、文件(重要)

1)、 减少文件包含数,减少磁盘 IO

2)、 使用完整路径,或者容易转换的相对路径。避免在 include_path 查找

3)、 文件的代码行数不要超过 2000 行

4)、Require_once/include_once 效率低于 require/include, 需要分外的去查看系统是不是已经挪用过这个文件. 因为它们在一个 opcode 缓存下的挪用异常慢

5)、程序执行文件用 requie/require_once,缓存文件用include/include_once。Include 效率好过 require

6)、优化 spl 中的文件自动加载机制,可参靠 yii

7)、类库文件加载,是不是考虑类是不是已经实例化,可考虑采用设计模式之单例模式

8)、文件读写的并发性

PHP机能如何实现周全优化,程序员可深切学习下

五、面向工具(重要)

1)、 节制实例的建立的数量

2)、 优先使用常量、类常量

3)、 优先例用静态变量,静态属性

4)、 类的结构合理

5)、 面象接口编程

6)、 封装变化点

7)、 依赖于抽象,不依赖于细节

8)、 优先使用静态成员

9)、 类的接口清晰稳定,类的职责单一,类与类的通信合理

10)、 使用常量的好处 编译时解析,没有分外开消 杂凑表更小,所以内部查找更快 类常量仅存在于特定「命名空间」,所以杂凑名更短 代码更洁净,使除错更轻易

6、字符串

1)、 用单引号替代双引号引用字符串;避免检索字符串中的变量

7、运算

1)、 用 i+=1 代替i=i+1。切合c/c++的习惯,效率还高

2)、 ++$i 的效率高于++$i,–$i 同理[/hide]

八、数组

1)、 多维数组尽量不要循环嵌套赋值;

2)、 使用$array[‘name’]方法接见数组,禁止$array[name]/$array[“name”]

9、判断(重要)

1)、 逻辑判断请优先使用switch 的方法,对付业务逻辑相对较多的情况请选择if/else,提高代码的可读性

2)、 尽量节制if/else判断的个数,如果太多请考虑功能优化或代码优化

3)、 尽量使用恒等用于比较判断,恒等的效率高于等于,并且还能避免一些类型强制转换的毛病

4)、 if/else与_&&,单条语句判断请选择&&的形式, &&的效率高于if/else,以下 :

if ($a == 1) {

$b = 2;

}

可选择为($a == 1) && $b = 2;

10、缓存

1)、 使用php加速器,缓冲opcode

2)、 例用memcache/nosql

3)、 使用内存数据库、

4)、 使用文件缓存

5)、 缓冲功能

11、其它

1)、 罕用@符号,严重影响机能

2)、 合时封闭远程资源连接如数据库,ftp、socket等,合时的清理这些资源

十2、 数据库优化(重要)

1)、 合理的商业需情

2)、 数据库 schema 架构优化

3)、 垂直与水平分库分表

4)、 索引优化,查询优化

5)、 第三方开源检索东西(sphinx)

6)、 主从数据库服务器的使用。

详情可查看传智PHP公然视频《大型网站优化核心技术-mysql》

十3、 前端优化

1)、合理的 html 结构

2)、合理 html 与css 的同时,考虑 Css 设计合理,减少 http 请求

3)、合理 html 与java script 的同时,考虑拆分是不是合理,减少 http 请求

4)、优化 java script 代码,让用户有良好的体验

5)、凭据 http 协议,优化高并发请求

发表我的评论
取消评论

表情

您的回复是我们的动力!

  • 昵称 (必填)
  • 验证码 点击我更换图片
  • 网友最新评论