A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 huawei 于 2017-3-5 11:44 编辑

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<count($array);$i++){};
       8)、 for($i=$total;$i>0;$i–){}性能好于for($i=0;$i<$total;$–){}
       9)、 保持循环体内的业务逻辑清晰

三、 函数(重要)

   
游客,如果您要查看本帖隐藏内容请回复


四、文件(重要)

游客,如果您要查看本帖隐藏内容请回复


五、面向对象(重要)

游客,如果您要查看本帖隐藏内容请回复


六、字符串

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

七、运算

       1)、 用 i+=1 代替i=i+1。符合c/c++的习惯,效率还高
       2)、 ++$i 的效率高于++$i,–$i 同理[/hide]

八、数组

      1)、 多维数组尽量不要循环嵌套赋值;
      2)、 使用$array[‘name’]方式访问数组,禁止$array[name]/$array[“name”]

九、判断(重要)

游客,如果您要查看本帖隐藏内容请回复


十、缓存

      1)、 使用php加速器,缓冲opcode
      2)、 例用memcache/nosql
      3)、 使用内存数据库、
      4)、 使用文件缓存
      5)、 缓冲功能

十一、其它

     1)、 少用@符号,严重影响性能
     2)、 适时关闭远程资源连接如数据库,ftp、socket等,适时的清理这些资源

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

游客,如果您要查看本帖隐藏内容请回复


十三、 前端优化

     1)、合理的 html 结构
     2)、合理 html 与css 的同时,考虑 Css 设计合理,减少 http 请求
     3)、合理 html 与java script 的同时,考虑拆分是否合理,减少 http 请求
     4)、优化 java script 代码,让用户有良好的体验
     5)、根据 http 协议,优化高并发请求

十四、性能检测工具(重要)

   
游客,如果您要查看本帖隐藏内容请回复




精华推荐:

视频集合:众多老学员呐喊:"为什么我选传智PHP"!

108 个回复

正序浏览
啊b 中级黑马 2019-12-11 10:20:39
109#
111111111111111
回复 使用道具 举报
学习学习
回复 使用道具 举报
echo : 'hello world';
回复 使用道具 举报
6666666666666666666666666
回复 使用道具 举报
噼噼啪啪铺铺铺铺
回复 使用道具 举报
谢谢楼主的无私奉献!!!!!!
回复 使用道具 举报
静态变量,对于一些需要由复杂业务产生的变量
回复 使用道具 举报
感谢分享~
回复 使用道具 举报
1111111111111111
回复 使用道具 举报
性能检测工具
回复 使用道具 举报
sukid 初级黑马 2017-11-20 10:04:10
99#
继续观看学习中...........
回复 使用道具 举报
函数(重要)
回复 使用道具 举报
66666666666
66
回复 使用道具 举报
哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈
回复 使用道具 举报
6666666666666
回复 使用道具 举报
hypertext preprocessor
回复 使用道具 举报
yuanlinjiayou 来自手机 初级黑马 2017-9-10 10:50:22
93#
11111111111111
回复 使用道具 举报
性能是网站运行是否良好的关键因素
回复 使用道具 举报
okokokokok
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马