- 1、本文档共7页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
必看文章:十四个方法告诉你如何实现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;$icount($array);$i++){};
8)for($i=$total;$i0;$i–){}性能好于for($i=0;$i$total;$–){}
9)保持循环体内的业务逻辑清晰
三、 函数(重要)
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
四、文件(重要)
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)文件读写的并发性
五、面向对象(重要)
您可能关注的文档
- 第一篇 汽车概论.ppt
- SWD协议的研究和ARM程序下载器的设计.pdf
- 探索中学数学高效课堂及有效教学模式的研究.doc
- oracle查询3种方法.doc
- 肠道菌群及肠易激综合征关系的研究进展.doc
- 一节握手游戏课反思 曹瑞霞.doc
- FX2系列PLC的滤波与刷新时间调整.doc
- 软件工程模拟试卷与答案3.doc
- C语言期末测试试题和答案.doc
- 集装箱运输及多式联运第三次作业.doc
- 抢分秘籍10 带电粒子电场中的直线运动、偏转和交变电电场中的应用(三大题型)(原卷版)-2025年高考物理冲刺抢押秘籍.pdf
- 抢分秘籍11 带电粒子在组合场、叠加场中的运动(五大题型)(解析版)-2025年高考物理冲刺抢押秘籍.pdf
- 抢分秘籍11 带电粒子在组合场、叠加场中的运动(五大题型)(原卷版)-2025年高考物理冲刺抢押秘籍.pdf
- 抢分秘籍12 电磁感应中的电路与图像问题(二大题型)(解析版) -2025年高考物理冲刺抢押秘籍.pdf
- 抢分秘籍12 电磁感应中的电路与图像问题(二大题型)(原卷版)-2025年高考物理冲刺抢押秘籍.pdf
- 抢分秘籍14 热力学定律与气体实验定律综合应用(五大题型)(解析版)-2025年高考物理冲刺抢押秘籍.pdf
- 抢分秘籍13 电磁感应中的动力学、能量和动量问题(三大题型)(原卷版)-2025年高考物理冲刺抢押秘籍.pdf
- 抢分秘籍14 热力学定律与气体实验定律综合应用(五大题型)(原卷版)-2025年高考物理冲刺抢押秘籍.pdf
- 抢分秘籍16 振动图像与波动图像的综合应用(三大题型)(解析版)-2025年高考物理冲刺抢押秘籍.pdf
- 抢分秘籍15 光的折射、全反射的综合应用(二大题型)(解析版)-2025年高考物理冲刺抢押秘籍.pdf
文档评论(0)