欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

PHP常用一部分优化技巧

程序员文章站 2024-02-21 15:32:10
...

PHP优化,提供以下几条,仅供大家参考:

1. 少用正则表达式,因为能用PHP函数的情况下,尽量用他们,效率高于正则。

没得说,正则最耗性能。

2. 尽量用单引号,因为一般字符串是没有变量的,使用双引号会导致性能不佳。

3. 使用isset代替strlen,在检验字符串长度时,我们一般会使用 strlen() 函数。虽然此函数执行起来相当快,因为它不做任何计算,但是,由于strlen()是函数,多多少少会有些慢,所以在某些情况下,我们可以使用 isset() 技巧加速执行你的代码。

4.echo效率高于print,因为echo没有返回值,print返回一个整型。

5.在includerequire中尽量使用绝对路径。因为包含相对路径,PHP会在include_path里面遍历查找文件,会影响效率。

6. 在可以用file_get_contents()替代file()fopen()feof()fgets()等系列方法的情况下,尽量用file_get_contents()。因为他的效率高得多!

7. 在传参方面通过参数地址引用的方式,实现函数多个返回值,这比按值传递效率高。方法是在参数变量前加个 &

8. 使用选择分支语句(switch case)好于使用多个if,else if语句。

9. 尽量静态化,如果一个方法能被静态,那就声明它为静态的,速度可提高1/4

10. 使用$_SERVER变量,如果你需要得到脚本执行的时间,$_SERVER['REQUSET_TIME']优于time()。一个是现成就可以直接用,一个还需要函数得出的结果。

11.使用++$i递增,当执行变量$i的递增或递减时,$i++会比++$i慢一些。这种差异是PHP特有的。

12. 循环用foreach,尽量用foreach代替whilefor循环,效率更高。

13. 压缩输出,在php.ini中开启gzip压缩:

zlib.output_compression = On
zlib.output_compression_level = (level)

如果你使用apache,也可以**mod_gzip模块。

14. 静态化页面,Apache/Nginx解析一个PHP脚本的时间,要比解析一个静态HTML页面慢210倍。所以尽量使页面静态化,或使用静态HTML页面。

15. 提高性能的最简单的方式是不断升级、更新PHP版本。

16. 多多利用PHP的扩展

17. PHP缓存一般情况下,PHP脚本被PHP引擎编译后执行,会被转换成机器语言,也称为操作码。如果PHP脚本反复编译得到相同的结果,为什么不完全跳过编译过程呢?PHP加速器缓存了编译后的机器码,允许代码根据要求立即执行,而不经过繁琐的编译过程。对PHP开发人员而言,目前提供了两种可用的缓存方案。一种是APC(Alternative PHP Cache,可选PHP缓存),它是一个可以通过PEAR安装的开源加速器。另一种流行的方案是OPCode,也就是操作码缓存技术。

18. 仅定义一个局部变量而没在函数中调用它,同样会减慢速度(其程度相当于递增一个局部变量)

19. 使用NoSQL缓存,Memchached或者Redis都可以。这些是高性能的分布式内存对象缓存系统,能提高动态网络应用程序性能,减轻数据库的负担。这对运算码 (OPcode)的缓存也很有用,使得脚本不必为每个请求重新编译。

20. echo 输出字符串用逗号代替点连接符更快些。虽然,echo是一种语言结构,不是真正的函数。但是,它可以把逗号隔开的多个字符串当作“函数”参数传入,所以速度会更快。

21. 在循环里别用函数,因为函数现在外面计算。

22. 服务器使用Linux系统,这个我就不过多解释了。

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

24. 数据库连接当使用完毕时应关掉,不要用长连接。

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

26.多维数组尽量不要循环嵌套赋值。

27.对global变量,应该用完就unset()掉

最后再提醒一下在代码优化的时候应该注意的事情:

1. 查询多次的最好缓存
因为可以提升效率,不用麻烦的在去数据库执行一次了。

2. 在写程序的时候更应该注重程序的扩展性,而不是追求速度。

3. 在优化你的代码之前,先看看跟数据库有关的部分,因为大多数应用程序的瓶颈在数据库而不是代码。

注意:优化还有很多,需要自己去发现,以上是自己开发阶段整理的,仅供参考。

相关标签: php 优化