如何让PHP运行更高效

简介:
1、如果能将类的方法定义成static,就尽量定义成static,它的速度会提升将近4倍。

2、$row['id'] 的速度是$row[id]的7倍。

3、echo 比 print 快,并且使用echo的多重参数(指用逗号而不是句点)代替字符串连接,比如echo $str1,$str2。

4、在执行for循环之前确定最大循环数,不要每循环一次都计算最大值,最好运用foreach代替。

5、注销那些不用的变量尤其是大数组,以便释放内存。

6、尽量避免使用__get,__set,__autoload。

7、require_once()代价昂贵。

8、include文件时尽量使用 绝对路径 ,因为它避免了PHP去include_path里查找文件的速度,解析操作系统路径所需的时间会更少。

9、如果你想知道脚本开始执行(即服务器端收到客户端请求)的时刻,使用$_SERVER[‘REQUEST_TIME’]要好于time()。

10、 函数 代替正则表达式完成相同功能。

11、str_replace函数比preg_replace函数快,但strtr函数的效率是str_replace函数的四倍。

12、如果一个字符串替换函数,可接受数组或字符作为参数,并且参数长度不太长,那么可以考虑额外写一段替换代码,使得每次传递参数是一个字符,而不是只写一行代码接受数组作为查询和替换的参数。

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

14、用@屏蔽错误消息的做法非常低效,极其低效。

15、打开apache的mod_deflate模块,可以提高网页的浏览速度。

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

17、在方法中递增局部变量,速度是最快的。几乎与在函数中调用局部变量的速度相当。

18、递增一个全局变量要比递增一个局部变量慢2倍。

19、递增一个对象属性(如:$this->prop++)要比递增一个局部变量慢3倍。

20、递增一个未预定义的局部变量要比递增一个预定义的局部变量慢9至10倍。

21、仅定义一个局部变量而没在函数中调用它,同样会减慢速度(其程度相当于递增一个局部变量)。PHP大概会检查看是否存在全局变量。

22、派生类中的方法运行起来要快于在基类中定义的同样的方法。

23、调用带有一个参数的空函数,其花费的时间相当于执行7至8次的局部变量递增操作。类似的方法调用所花费的时间接近于15次的局部变量递增操作。

24、Apache解析一个PHP脚本的时间要比解析一个静态HTML页面慢2至10倍。尽量多用静态HTML页面,少用脚本。

25、除非脚本可以缓存,否则每次调用时都会重新编译一次。引入一套PHP缓存机制通常可以提升25%至100%的性能,以免除编译开销。

26 、尽量做缓存,memcached是一款高性能的内存对象缓存系统,可用来加速动态Web应用程序,减轻数据库负载。对运算码(OP code)的缓存很有用,使得脚本不必为每个请求做重新编译。

27 、 当操作字符串并需要检验其长度是否满足某种要求时,你想当然地会使用strlen()函数。此函数执行起来相当快,返回在 zval 结构中存储的已知字符串长度。但是,由于strlen()是函数,多多少少会有些慢,因为函数调用会经过诸多步 骤,如字母小写化(指函数名小写化,PHP不区分函数名大小写)、哈希查找,会跟随被调用的函数一起执行。在某些情况下,你可以使用isset() 技巧加速执行你的代码。

做到以上这些,便可以有效提高在PHP开发过程中代码执行的效率。这就是php高手追求的。



      本文转自许琴 51CTO博客,原文链接:http://blog.51cto.com/xuqin/882331,如需转载请自行联系原作者





相关文章
|
8月前
|
缓存 前端开发 JavaScript
PHP - Laravel 创建项目到服务器(nginx、apache)运行(附带目录结构)
PHP - Laravel 创建项目到服务器(nginx、apache)运行(附带目录结构)
216 0
|
5月前
|
PHP
运行php服务,电脑抓不了包
运行php服务,电脑抓不了包
26 0
|
8月前
|
应用服务中间件 PHP Apache
如何运行php文件
如何运行php文件
|
PHP
php : 无法将“php”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写,如果包括路径,请确保路径正确,然后再试一次。
php : 无法将“php”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写,如果包括路径,请确保路径正确,然后再试一次。
1811 0
php : 无法将“php”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写,如果包括路径,请确保路径正确,然后再试一次。
|
9月前
|
前端开发 JavaScript 数据可视化
javascript逐行显示数据及php实时输出前端内容后台保持继续运行的解决方案(setTimeout定时器、flush和ob_flush函数、安装进度展示)
javascript逐行显示数据及php实时输出前端内容后台保持继续运行的解决方案(setTimeout定时器、flush和ob_flush函数、安装进度展示)
134 0
|
9月前
|
弹性计算 安全 关系型数据库
阿里云ECS服务器宝塔Linux系统php和mysql运行环境配置步骤
阿里云ECS服务器宝塔Linux系统php和mysql运行环境配置步骤
290 0
|
9月前
|
存储 自然语言处理 安全
PHP底层运行机制与原理剖析
PHP底层运行机制与原理剖析
111 0
|
11月前
|
小程序 PHP 开发者
快速搭建微信小程序可以访问的PHP后台数据,phpstorm运行本地PHP后台项目
快速搭建微信小程序可以访问的PHP后台数据,phpstorm运行本地PHP后台项目
216 0
|
11月前
|
关系型数据库 MySQL PHP
如何用laragon框架运行php文件
如何用laragon框架运行php文件
104 0