1、如果一个方法可以静态化,就做静态声明,速率可以提升至4倍

2、echo 快于 print

3、使用echo的多重参数代替字符串连接(指用逗号而不是句号)

4、在执行for循环之前确定最大循环数,不要没循环一次都计算最大值

5、注销不用的变量尤其是大数组,以便释放内存

6、尽量避免使用__get、__set、__autoload

7、require_once()代价昂贵

8、在包含文件时使用完整路径,解析操作系统路径需要的时间会更少

9、如果想要知道脚本开始执行时间(即服务器端收到客户端请求)的时刻,使用$_SERVER['REQUEST_TIME']要好于time()

10、检查是否能用strncasecmp、strpbrk、stripos函数代替正则表达式完成相同功能

11、str_replace函数比preg_replace函数快,单strtr函数的效率是str_replace函数的四倍

12、如果一个字符串替换函数,可接受数组或字符为参数,并且参数长度不太长,那么可以考虑额外写一段替换代码,使得每次传递参数是一个字符,而不是只写一行代码接受数组作为查询和替换的参数。

13、使用选择分支语句(即switch-case)好于使用多个if-else if语句

14、使用@屏蔽错误消息的做法非常低效

15、打开apache的mod_deflate模块(页面压缩)

16、数据库连接应使用完毕即时关掉

17、$row['id']的效率是$row[id]de 7倍

18、错误消息代价昂贵

19、尽量不要在for循环中使用函数

20、在方法中递增局部变量,速度是最快的

21、递增一个全局变量要比递增一个局部变量慢2倍

22、递增一个对象属性(如$this->prop++)要比递增一个局部变量慢3倍

23、递增一个未定义的局部变量要比递增一个预定义的局部变量慢9到10倍

24、仅顶一个一个局部变量而没有在函数中调用它,同样会加满速度

25、方法调用看来与类中定义的方法的数量无关

26、派生类中的方法运行起来要快于在基类中定义的同样方法

27、调用带有一个参数的空函数,其花费的时间相当于执行7到8次的局部变量递增操作

28、使用单引号代替双引号包含字符串

29、输出多个字符串时用逗号代替句点来分隔字符串,速度更快,echo

30、Apache解析一个PHP脚本的时间要比解析一个静态HTML页面慢2至10倍,尽量多用静态HTML页面,少用脚本。

31、除非脚本可以缓存,否则每次调用都会重新编译一次,引入一套PHP缓存机制通常可以提升25%到100%的性能,以免编译开销

32、尽量做缓存,可使用memecached。memcached是一款高性能的内存对象缓存系统,可用来加速动态Web应用程序,减轻数据库浮在。对运算吗(OP Code)的缓存很有用,使得每个脚本不必为每个请求做重新编译。

33、当操作字符串并需要检验其长度时候满足要求时,你会想当然使用strlen()函数。此函数执行起来相当快,因为它不做任何计算,只返回zval结构(C的内置数据结构,用于存储PHP变量)中存储已知字符串的长度。但是,由于strlen()是函数,多多少少会有些慢,因为函数调用会经过诸多步骤,在某些情况下,可以使用isset()技巧加速执行你的代码

34、当执行变量$i的递增或递减时,$i++会比++$i忙一些。这种差异是PHP特有的,并不适用于其他语言。++$i更快是因为他需要3条指令,$i++需要4条指令。后置递增时间上会产生一个临时变量,这个临时变量随后被递增。而强制递增直接在原值上递增。这是优化处理的一种,正如Zend的PHP优化器所做的那样。牢记这个优化处理不失为一个好主意,因为不是所有指令优化器会做同样的优化处理,并且存在大量没有装配指令优化器的互联网服务提供商人(ISPs)和服务器。

35、并不是事必面向对象(OOP),面向对象玩玩开销很大,每个方法和对象调用都会消耗很多内存。

36、并非要用类实现所有的数据结构,数组也很有用

37、不要把方法细分得过多,仔细想想你真正打算重用的是哪些代码

38、当你需要时,你总能把代码分解成方法

39、尽量大量采用PHP内置函数

40、如果在代码中存在大量耗时的函数,可以考虑用C扩展方式实现它们

41、评估检验你的代码,检验器会告诉你,代码的哪些部分消耗了多少时间。Xdebug调试器包含了检验程序,评估检验总体上可以显示出代码的瓶颈

42、mod_zip可作为Apache模块,用来即时压缩你的数据,并可让数据传输量降低80%

Note:一些优化建议相关推荐

  1. SQLAdvisor美团SQL索引优化建议工具

    SQLAdvisor美团SQL索引优化建议工具 前言 Part1:写在最前 SQLAdvisor是美团开源的一款SQL索引优化建议工具,是由美团点评公司技术工程部DBA团队(北京)开发维护的一个分析S ...

  2. Android 系统性能优化(41)---Android代码内存优化建议-OnTrimMemory优化

    Android代码内存优化建议-OnTrimMemory优化 OnTrimMemory 回调是 Android 4.0 之后提供的一个API,这个 API 是提供给开发者的,它的主要作用是提示开发者在 ...

  3. unity几种优化建议

    最简单的优化建议: 1.PC平台的话保持场景中显示的顶点数少于200K~3M,移动设备的话少于10W,一切取决于你的目标GPU与CPU. 2.如果你用U3D自带的SHADER,在表现不差的情况下选择M ...

  4. MySQL · 性能优化· CloudDBA SQL优化建议之统计信息获取

    阿里云CloudDBA具有SQL优化建议功能,包括SQL重写建议和索引建议.SQL索引建议是帮助数据库优化器创造最佳执行路径,需要遵循数据库优化器的一系列规则来实现.CloudDBA需要首先计算表统计 ...

  5. SAP MM 对于MRKO事务代码的几点优化建议

    SAP MM 对于MRKO事务代码的几点优化建议 SAP公司数十年如一日的一直在对SAP软件系统做升级,从早期的R2,到后来的R3, ECC,一直到现在S4HANA以及Cloud.在升级改造的过程中, ...

  6. Dockerfile实践优化建议

    本文讲的是Dockerfile实践优化建议[编者的话]Dockerfile是一种被Docker程序解释的脚本,Dockerfile由一条一条的指令组成,每条指令对应Linux下面的一条命令.Docke ...

  7. .NET程序的性能要领和优化建议

    前几天在老赵的博客上看到,Bill Chiles (Roslyn 编译器的Program Manager)写了一篇文章叫做<Essential Performance Facts and .NE ...

  8. QML 性能优化建议(二)

    前言 接前一篇文章,QML 性能优化建议(一),这里接着来介绍性能优化建议的第二部分:通用接口元素,在这里会介绍一些常见的元素,如:图片.布局之类的写法. 通用接口元素 图片 图片是任何用户界面的重要 ...

  9. mysql 结构优化建议_MySQL优化之表结构优化的5大建议(数据类型选择讲的很好)...

    殊不知,在N年前被奉为"圣经"的数据库设计3范式早就已经不完全适用了.这里我整理了一些比较常见的数据库表结构设计方面的优化技巧,希望对大家有用. 由于MySQL数据库是基于行(Ro ...

  10. 从原理上理解MySQL的优化建议

    概述 自从学习 MySQL 以来,我们一直听到或者看到很多优化建议,比如说不要用 select * 查询,用什么字段就查什么字段:建议用自增主键来作为表的主键,等等.这些建议听得很多感觉都成了 MyS ...

最新文章

  1. python 正则表达质 re.sub() 的使用
  2. MySQL面试题 | 附答案解析(十七)
  3. 「一夜白头」有科学依据了,减压可返黑 | 哥伦比亚大学最新研究
  4. Spring Autowire自动装配
  5. linux切换桌面环境bug,GNOME 3.32.2桌面环境发布,最新的bug和安全修复
  6. 微软职位内部推荐-Senior BSP Engineer
  7. java实现打印购物清单jframe_在java中打印2页的jframe
  8. 阿里云混合云Apsara Stack 2.0发布,加速政企数智创新
  9. L1-048. 矩阵A乘以B
  10. 全国高等院校英语能力大赛模拟题
  11. Node安装模块命令
  12. 转载:vc6.0 打开文件的时候出现Microsoft Visual C++:MSDEV.EXE 应用程序错误
  13. mina框架CumulativeProtocolDecoder.doDecode方法浅析
  14. 5000头奶牛的数字化之旅
  15. 编程中常见的Foo是什么意思
  16. LeetCode题解(1872):石子游戏VIII(Python)
  17. Clion设置背景图片
  18. java记事本统计功能_JAVA 运用流编程实现简单的记事本功能
  19. JavaScript面试题111-120
  20. reentrantlock与synch区别优点

热门文章

  1. R语言sign函数判断数值为正数或者负数实战
  2. Keras训练神经网络进行分类并进行交叉验证(Cross Validation)
  3. R语言_高级数据管理
  4. 关于(++i)+(++i)+(++i)与(++i)+(i++)与(i++)+(++i)
  5. 基因疾病关联的图卷积神经网络
  6. 测试开发工程师技能图谱
  7. Moving Towards Third‐Generation Sequencing Technologies 迈向第三代测序技术
  8. 核酸序列特征信息分析
  9. java swing 外观框架_【GUI】一、Swing外观框架BeautyEye使用
  10. oc引导win方法_[OC更新]机械革命10代标压稳定版更新