大家好,今天来为大家解答浅谈PHP代码优化这个问题的一些问题点,包括也一样很多人还不知道,因此呢,今天就来为大家分析分析,现在让我们一起来看看吧!如果解决了您的问题,还望您关注下本站哦,谢谢~
4. 取消注册未使用的变量,尤其是大型数组,以释放内存。
5.尽量避免使用__get __set __autoload。
6. require_once() 的成本很高。
7. 包含文件时使用完整路径,解析操作系统路径所需的时间会更少。
8.如果你想知道脚本开始执行的时间,$_SERVER[‘REQUEST_TIME’]比time()更好
9、函数代替正则表达式来完成同样的功能。
10、strtr函数的效率比str_replace高4倍。
11.使用选择性分支语句switch case比使用多个if、elseif更好
12.使用@来阻止错误消息效率非常低。
13、当数据库连接完成后,必须及时关闭。
14.$val[‘id’] 比$val[id] 效率高得多。
15. 递增局部变量比递增局部变量慢得多,递增对象属性($this-prop++)比递增局部变量慢得多。
16、只定义局部变量而不在函数中调用它也会降低速度。方法调用与类中定义的方法数量无关。
17. 派生类中的方法比基类中定义的相同方法运行得更快。
18、使用单引号的效率比使用双引号快,因为PHP会在双引号包围的字符串中搜索变量。
19. Apache 解析PHP 脚本所需的时间比解析HTML 页面慢2 到10 倍。尽可能使用静态HTML 脚本。
22、使用echo的多个参数代替字符串连接。
23、执行for循环之前确定最大循环次数。不要每次循环都计算最大值。
24.注销未使用的变量,尤其是大数组,以释放内存。
25.尽量避免使用__get、__set、__autoload。
26、检查是否可以使用strncasecmp、strpbrk、stripos函数代替正则表达式完成同样的功能。
27.require_once() 很昂贵。
28.包含文件时使用完整路径,解析操作系统路径将花费更少的时间。
29. 如果你想知道脚本开始执行的时间,最好使用$_SERVER[‘REQUEST_TIME’]而不是time()。
30. 增加一个对象属性(例如:$this-prop++)比增加一个局部变量慢3倍。
31. str_replace函数比preg_replace函数快,但strtr函数比str_replace函数效率高四倍。
32、如果字符串替换函数可以接受数组或者字符作为参数,并且参数长度也不太长,那么可以考虑多写一段替换代码,让传递的每个参数都是一个字符,而不是只写一行接受数组的代码。作为查询和替换的参数。
33.使用@来阻止错误消息效率非常低。
34、数据库连接使用完毕后应关闭。
35.$row[‘id’]比$row[id]效率高7倍。
36. 错误消息的代价是昂贵的。
37. 尽量不要在for循环中使用函数。例如, for ($x=0; $x count($array); $x) 每次循环都会调用count() 函数。
38. 增加方法中的局部变量是最快的。几乎与在函数中调用局部变量一样快。
39. 递增全局变量比递增局部变量慢2 倍。
40. config中尽量不要添加逻辑,比如if.else等操作。
41. 递增未定义的局部变量比递增预定义的局部变量慢9 到10 倍。
43. 方法调用似乎与类中定义的方法数量无关,因为我添加了10 个方法(在测试方法之前和之后)并且性能没有变化。
44. 派生类中的方法比基类中定义的相同方法运行得更快。
45. 调用一个带有一个参数的空函数所花费的时间相当于局部变量递增7 到8 倍。类似的方法调用需要接近15 个局部变量增量。
46.用单引号代替双引号将字符串括起来,这样更快。因为PHP 会在双引号括起来的字符串中搜索变量,但单引号不会。当然,只有当不需要在字符串中包含变量时才可以这样做。
47、输出多个字符串时,使用逗号代替句点来分隔字符串,这样速度更快。注意:只有echo 可以做到这一点,它是一个可以接受多个字符串作为参数的“函数”。
48. Apache 解析PHP 脚本的速度比解析静态HTML 页面慢2 到10 倍。尝试使用更多的静态HTML 页面和更少的脚本。
49、当对字符串进行操作,需要检查其长度是否满足一定要求时,自然会使用strlen()函数。这个函数执行得相当快,因为它不做任何计算,只是返回存储在zval 结构(C 的内置数据结构,用于存储PHP 变量)中的已知字符串长度。不过,由于strlen()是一个函数,所以会有些慢,因为函数调用会经过很多步骤,比如小写字母(译注:指小写函数名,PHP不区分函数名大小写) ),哈希搜索,会和被调用的函数一起执行。在某些情况下,您可以使用isset() 技巧来加快代码的执行速度。
示例如下
if (strlen($foo) 5) { echo “Foo 太短”; } vs. (与下面的技巧比较) if (!isset($foo{5})) { echo “Foo 太短”; }调用isset() 恰好比strlen() 更快,因为与后者不同,isset() 作为一种语言构造,意味着它的执行不需要函数查找和字母小写。换句话说,您实际上并没有在检查字符串长度的顶级代码中花费太多开销。使用isset()也可以解决我们的很多通知操作。它还可以带来性能提升。
50. 当执行变量$i的递增或递减时,$i++会比++$i慢。这种差异是PHP 特有的,++$i 更快,因为它只需要3 条指令(操作码),而$i++ 需要4 条指令。后递增实际上创建了一个随后递增的临时变量。前缀增量直接在原始值上增加。这是一种优化形式,由Zend 的PHP 优化器完成。记住这种优化是个好主意,因为并非所有命令优化器都会执行相同的优化,并且有大量Internet 服务提供商(ISP) 和服务器没有配备命令优化器。
51、并不是一切都必须面向对象(OOP),面向对象往往是昂贵的,并且每个方法和对象调用都消耗大量内存。
52. 并不是所有的数据结构都需要在类中实现,数组也很有用。
53. 不要过多地分解方法。仔细想想你真正打算重用哪些代码?
54. 当需要时,您始终可以将代码分解为方法。
55. 尝试使用大量PHP内置函数。不要自己写,因为当你调用你写的函数时,它们会被编译然后才能执行,而内置函数是直接调用的。
56、如果代码中有大量耗时的函数,可以考虑使用C扩展来实现。这件事我稍后会和孟光谈。
57. 评估并验证您的代码。检查器会告诉您代码的哪些部分花费了多少时间。 Xdebug 调试器包括检查例程,用于评估代码的整体完整性并揭示代码中的瓶颈。
58、无论include还是require包含一次,都会先执行,执行后的监听代码会返回到调用该语句的地方,从而减少不必要的PHP代码加载。
原创文章,作者:小su,如若转载,请注明出处:https://www.sudun.com/ask/126406.html
用户评论
放血
这篇文章写的真棒!我一直在试图优化我的PHP代码,但总是卡在这个那个地方。你的简要解释真的很清晰易懂,让我能更好地理解如何提高效率
有15位网友表示赞同!
失心疯i
看了之后感觉自己还是太菜了,很多概念都不太明白。希望作者能出一本更详细的书,深入讲解一下这些技巧。
有14位网友表示赞同!
安之若素
我一直觉得PHP代码优化这方面信息太少了,很高兴看到这篇文章!尤其对“使用缓存机制”部分很有启发。我会尝试在项目中应用一下看效果
有18位网友表示赞同!
苍白的笑〃
文章写得不错,内容也比较实用的技巧,但是缺乏一些具体的例子说明。如果有更多实例和代码对比,会更生动易懂
有8位网友表示赞同!
无关风月
PHP代码优化真是太重要了!慢的网站谁受得了?分享这些方法,真的受益匪浅!我决定马上把文章中的内容应用到我的项目中试试!
有20位网友表示赞同!
゛指尖的阳光丶
这篇文章仅仅是略微触及了一些表面现象,对深度优化的论述非常少许。例如,针对不同场景使用不同的优化手段,才是真正提升性能的关键
有5位网友表示赞同!
算了吧
作为一名PHP开发者,我认为代码简洁易读是至关重要的。虽然这篇文章提到了一些性能优化,但我更关心的是如何写出优雅、可维护的代码
有8位网友表示赞同!
墨染天下
文章很有参考价值!我之前也想过要学习一些 PHP 代码优化技巧,现在终于有了方向和方法了。等周末有机会好好实践一下。
有17位网友表示赞同!
孤败
PHP开发已经有几年的经验了,对于许多优化方法早已耳熟能详。这篇文章更像是入门级教程,对有一定经验的开发者来说,内容比较基础
有9位网友表示赞同!
旧事酒浓
感谢作者分享这些宝贵的经验!我很容易被人困扰优化问题,这篇文章给了我清晰思路和一些实际的操作步骤!我会认真学习并应用起来!
有11位网友表示赞同!
该用户已上天
PHP代码优化是一个复杂的领域,单靠一篇简短的文章难以全面总结所有的技巧。建议作者结合具体的项目案例进行讲解,更能帮助读者理解和实践。
有13位网友表示赞同!
刺心爱人i
我本身很少写 PHP 代码,这篇博文对我的了解很有帮助!简单易懂的语言讲清了关键概念,让我对 PHP 代码优化有了更清晰认知
有5位网友表示赞同!
此生一诺
这篇文章太好啦!终于找到了一份浅显易懂的PHP代码优化指南。我要把这份宝藏收藏起来,经常参考!
有5位网友表示赞同!
权诈
学习了一下 这篇文章提到的代码缓存机制,感觉确实能提升 PHP 代码执行效率。我打算在我的项目中应用一下,看看效果怎么样
有16位网友表示赞同!
执妄
优化性能真的很重要,但有时一些看似简单的优化的确会带来难以预料的后果。需要谨慎分析每个场景,选择最合适的方案。
有10位网友表示赞同!
断秋风
文章内容不错,但我希望作者能提供更详细的例子,例如什么情况下使用什么类型的优化方案,这样更容易理解和应用
有13位网友表示赞同!