前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >PHP 性能优化小技巧

PHP 性能优化小技巧

作者头像
Lemon黄
发布2020-10-30 11:43:51
1K0
发布2020-10-30 11:43:51
举报
文章被收录于专栏:Lemon黄Lemon黄

1. foreach 效率更高,尽量用 foreach 代替 while 和 for 循环。

2. 循环内部不要声明变量,尤其是对象这样的变量。

3. 在多重嵌套循环中,如有可能,应当将最长的循环放在内层,最短循环放在 外层,从而减少 cpu 跨循环层的次数,优化程序性能。

4. 用单引号替代双引号引用字符串以实现 PHP 性能优化。

5. 用 i+=1 代替 i=i+1。符合 c/c++的习惯,效率还高。

6. 优化 Select SQL 语句,在可能的情况下尽量少的进行 Insert、Update 操作,达到 PHP 性能优化的目的。

7. 尽量的少进行文件操作,虽然 PHP 的文件操作效率也不低的。

8. 尽可能的使用 PHP 内部函数。

9. 在可以用 PHP 内部字符串操作函数的情况下,不要用正则表达式

10. 在可以用 file_get_contents 替代 file、fopen、feof、fgets 等系列方法的情况 下,尽量用 file_get_contents,因为它的效率高得多。但是要注意 file_get_contents 在打开一个 URL 文件时候的 PHP 版本问题。

11.尽量静态化

如果一个方法能被静态,那就声明它为静态的,速度可提高 1/4,甚至我测试的时候,这个提高了近三倍。当然了,这个测试方法需要在十万级以上次执行,效果才明显。其实静态方法和非静态方法的效率主要区别在内存:静态方法在程序开始时生成内存,实例方法(非静态方法)在程序运行中生成内存,所以静态方法可以直接调用,实例方法要先成生实例再调用,静态速度很快,但是多了会占内存。任何语言都是对内存和磁盘的操作,至于是否面向对象,只是软件层的问题,底层都是一样的,只是实现方法不同。静态内存是连续的,因为是在程序开始时就生成了,而实例方法申请的是离散的空间,所以当然没有静态方法快。静态方法始终调用同一块内存,其缺点就是不能自动进行销毁,而实例化可以销毁。

12.echo 效率高于 print

因为 echo 没有返回值,print 返回一个整型。

测试:echo 0.000929 - 0.001255 s (平均 0.001092 seconds)

print 0.000980 - 0.001396 seconds (平均 0.001188 seconds)

相差 8%左右,总体上 echo 是比较快的。

注意:echo 输出大字符串的时候,如果没有调整就会严重影响性能。打开 Apache 的 mod_deflate 进行压缩,或者打开 ob_start 将内容放进缓冲区可以改善性能问题。

13.尽量的少进行文件操作,虽然 PHP 的文件操作效率也不低的

14.优化 Select SQL 语句 在可能的情况下尽量少的进行 insert、update 操作。

15.用字符串而不是数组作为参数

如果一个函数既能接受数组,又能接受简单字符做为参数,那么尽量用字符作为参数。例如字符替换函数,参数列表并不是太长,就可以考虑额外写一段替换代码,使得每次传递参数都是一个字符,而不是接受数组做为查找和替换参数。大事化小,1+1>2。

16.最好不用@

用@掩盖错误会降低脚本运行速度,并且在后台有很多额外操作。用@比起不用,效率差距 3 倍。特别不要在循环中使用@,在 5 次循环的测试中,即使是先用 error_reporting(0)关掉错误,在循环完成后再打开,都比用@快。

17.数组元素加引号

$row['id']比$row[id]速度快 7 倍,建议养成数组键名加引号的习惯。

18 别在循环里用函数

例如:

代码语言:javascript
复制
for($x=0; $x < count($array); $x++) {
}

这种写法在每次循环的时候都会调用 count() 函数,效率大大降低,

建议这样:

代码语言:javascript
复制
$len = count($array); for($x=0; $x < $len; $x++) { }

让函数在循环外面一次获得循环次数。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-10-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Lemon黄 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档