如何优化php代码 让速度提高5倍以上

网页访问速度的提高,是能够经过代码的优化来实现的。代码的优化,并非说代码越少越好,而是主要看代码的运行能力和执行效率,看其消耗CPU和内存的多少。例如Facebook近来就宣布经过代码优化而将网站性能提升了一倍,平均访问时间从5s降至2.5s,这个结果无疑是极其诱人的。php

 

PHP是一门不少人正在使用的语言,在网站开发上PHP的使用普遍度超过ASP和ASP.NET,看看时下流行的CMS和博客用什么语言来开发的就知道了。html

 

其实PHP入门很容易,尤为是对于一个已经接触过程序编写的人来讲,而对于没有接触过程序语言的菜鸟来讲,学习用PHP作一个输出hello world的网页也很轻松。程序员

 

然而要编写高效率的代码,并非全部懂程序的人均可以编写出来的,这须要通过多年的研究积累和经验总结。web

 

本文将给你们提炼一些PHP代码优化的实例,利用这些优化,PHP代码的运行能力将会大大提升,速度提高5倍以上有些状况下并非不能出现。数据库

 

一、echo 比 print 快编程

 

echo和print是PHP程序中常用的指令,尤为是须要调试的时候。echo和print都能输出一段信息,但经测试发现,echo运行速度会比print快,所以在程序编写是应使用echo而非print。可是有时候也须要用到print,echo不能彻底代替print。请看[php echo()和print()有什么区别](http://www.webkaka.com/tutorial/php/2012/082016/)。缓存

 

二、链接符用逗号而不是句号服务器

 

php里逗号和句号均可以起到链接符的做用,关于如何优化输出,能够看这里[如何优化php字符串echo输出](http://www.webkaka.com/tutorial/php/2012/05207/)。memcached

 

此外,输出多个字符串时,用逗号代替句点来分隔字符串,速度更快。函数

 

三、在执行for循环以前肯定最大循环数,不要每循环一次都计算最大值。

 

这条准则一样适用于任何语言,这个是编程习惯,但这个习惯很很差,无论你使用什么语言。

 

// 在每次循环中sizeof函数都要被调用

 

for ($i = 0; $i < sizeof($post_data); $i++)

 

{

 

do_something();

 

}

 

// 您能够在循环起始部分对这个不变的量赋值

 

for ($i = 0, $size = sizeof($post_data); $i < $size; $i++)

 

{

 

do_something();

 

}

 

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

 

if else if 的使用很是广泛,在其余语言里也同样,这个写法好像更符合人的说话习惯,可是在程序里这样写并不太好,它在效率上比switch case要低。因此,一旦程序里须要多个判断时,就应该用switch case而不要再用if else if else if这样。

 

五、数据库链接当使用完毕时应关掉

 

在操做数据库时,不少程序员每每忘记关掉数据库链接,或许他们没有这个习惯。数据库链接是须要消耗内存为代价的,链接数越多内存消耗就越多,因此在实际应用中都必须及时关闭不须要用到的链接,以释放内存,缓解服务器压力。

 

六、错误消息代价昂贵

 

错误消息通常用于调试,它的执行效率实际上是很低的,速度上会比直接运行慢不少。因此,在程序不须要抓取错误消息时,就不要用。

 

七、局部变量要合理使用

 

尽可能不要在for循环中使用函数,好比for ($x=0; $x prop++)要比递增一个局部变量慢3倍。

 

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

 

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

 

八、用单引号代替双引号来包含字符串

 

实践证实,用单引号代替双引号来包含字符串,这样作会更快一些。

 

由于PHP会在双引号包围的字符串中搜寻变量,单引号则不会。固然,只有当你不须要在字符串中包含变量时才能够这么作。更多分析[请看实例分析php单引号和双引号的区别](http://www.webkaka.com/tutorial/php/2012/092718/)。

 

九、mod_zip你用了吗

 

mod_zip可做为Apache模块,用来即时压缩你的数据,并可以让数据传输量下降80%。

 

十、缓存的使用

 

除非脚本能够缓存,不然每次调用时都会从新编译一次。引入一套PHP缓存机制一般能够提高25%至100%的性能,以避免除编译开销。

 

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

 

十一、网页用html而非php

 

毫无疑问,html静态页面的访问速度是最快的,如今的CMS,都是能够在后台生成全站HTML静态页面的,这不只能够提升用户访问网页的速度,而对于搜索引擎的收录和排名也是很是有利的。

 

以上几点是本文提炼出来的PHP优化方法,固然,优化PHP绝非仅此一点,所谓学无止境,许许多多的优化方法和技巧,须要咱们在实践中不断总结和运用。

相关文章
相关标签/搜索