Note:一些优化建议

本文提供了42条关于如何提高PHP应用程序性能的有效建议,包括代码优化、数据库管理、缓存策略等,帮助开发者深入了解PHP性能瓶颈并采取相应措施。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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%

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值