优化 PHP 建议

原文出处:http://reinholdweber.com/?p=3

1.如果一个方法可静态化,就对它做静态声明。速率可提升至4倍。

2.echo 比 print 快。

3.使用echo的多重参数(译注:指用逗号而不是句点)代替字符串连接。

4.在执行for循环之前确定最大循环数,不要每循环一次都计算最大值。

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

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

7.require_once()代价昂贵。

8.在包含文件时使用完整路径,解析操作系统路径所需的时间会更少。

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.$row[‘id’]的效率是$row[id]的7倍。

18.错误消息代价昂贵。

19.尽量不要在for循环中使用函数,比如for ($x=0; $x < count($array); $x)每循环一次都会调用count()函数。

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

21.递增一个全局变量要比递增一个局部变量慢2倍。

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

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

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

25.方法调用看来与类中定义的方法的数量无关,因为我(在测试方法之前和之后都)添加了10个方法,但性能上没有变化。

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

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

28.用单引号代替双引号来包含字符串,这样做会更快一些。因为PHP会在双引号包围的字符串中搜寻变量,单引号则不会。当然,只有当你不需要在字符串中包含变量时才可以这么做。

29.输出多个字符串时,用逗号代替句点来分隔字符串,速度更快。注意:只有echo能这么做,它是一种可以把多个字符串当作参数的“函数”(译注:PHP手册中说echo是语言结构,不是真正的函数,故把函数加上了双引号)。

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

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

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

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

(举例如下)
if (strlen($foo) < 5) { echo "Foo is too short"; }

时间: 2024-10-30 15:07:58

优化 PHP 建议的相关文章

yahoo网站性能优化的建议:Yahoo军规再度挖掘

文章描述:本来这是个老生常谈的问题,上周自成又分享了一些性能优化的建议,我这里再做一个全面的Tips整理,谨作为查阅型的文档,不妥之处,还请指正. 本来这是个老生常谈的问题,上周自成又分享了一些性能优化的建议,我这里再做一个全面的Tips整理,谨作为查阅型的文档,不妥之处,还请指正:如果你已经对yahoo这些优化建议烂熟于心,果断点这里 一. Yahoo的军规条例: 谨记:80%-90%的终端响应时间是花费在下载页面中的图片,样式表,脚本,flash等:详细的解释来这里查:http://deve

HTTPS网站的seo优化技术建议

因为HTTPS站点的安全特性,百度一直倡导网站管理员或者seo优化人员对网站进行HTTPS技术改造.另外,网站的打开速度,网站的安全系数等都是影响关键词排序的维度,从安全系数来讲,采用HTTPS协议的网站更为安全,在相同条件下,这类网站的排名会更高.百度曾经明确表示,会全面支持HTTPS页面的收录,但从实际的情况来看,支持形式的网站更容易被收录,在这种情况下,就要对HTTPS类型的网站进行针对性的seo优化,在此,以问答的形式,讲解相关内容. HTTPS网站的seo优化技术建议 1问:https

JavaScript提高网站性能优化的建议(二)_javascript技巧

在javascript关于提高网站性能的几点建议(一)中,从HTTP请求到页面渲染几个方面对提高网站性能提出了几点建议,本文是学习Steve Sounders的另外一本书<高性能网站建设进阶指南>之后,从JavaScript性能的角度进行总结概括,诸君共勉. JavaScript性能是实现高性能Web应用程序的关键 --Steve Sounders 1 利用js作用域链 作用域链(scope chain) 当执行一段JavaScript代码(全局代码或函数)时,JavaScript引擎会创建为

MySQL性能优化的建议

注意事项列表 为查询缓存优化你的查询 EXPLAIN 你的 SELECT 查询 当只要一行数据时使用 LIMIT 1 为搜索字段建索引 在Join表的时候使用相当类型的例,并将其索引 千万不要 ORDER BY RAND() 避免 SELECT * 永远为每张表设置一个ID 使用 ENUM 而不是 VARCHAR 从 PROCEDURE ANALYSE() 取得建议 尽可能的使用 NOT NULL Prepared Statements 无缓冲的查询 把IP地址存成 UNSIGNED INT 固

亚森:SEO之站群优化不建议黑帽手法

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 近来发现很多朋友开始关注站群,因为站群QJ百度的案例太多了,基本上很多行业都能看到.info的郁闷垄断某些关键词的排名.而我们发现.info的网站有排名就害怕了,看到info就联想到站群.那么今天亚森就给大家介绍一下神马才是站群优化. 站群的成本比较低,只需要注册大量的info域名加上一台服务器,大概500元之内就能搞定.很多做SEO的朋友应

POP3性能优化的建议

1.对于从 POP3 客户机独占访问邮件的用户,当前个人文档中的"外来邮件的格式惯用选项"设置为"保留发件人的格式", (即, "Format preference for incoming mail"设置为"Keep in senders' format").建议修改该设置为"惯用 MIME", (即," Prefers MIME"),上述设置有如下区别:保留发件人的格式:向邮件文件邮

必应推出新版图片搜索:优化搜索建议和缩略图

北京时间6月22日早间消息,微软(微博)必应周四推出了全新图片搜索功能,可提供更好的搜索建议.过滤器以及更大缩略图. 微软在几周前对其常规搜索页面进行了重新设计,并在周二推出了图片搜索功能更新.通过此次更新,微软改善了相关搜索的搜索建议,用户可更加轻易的通过尺寸.颜色.类型和布局过滤图片. 微软还将这些新功能放置了在页面顶部,此举使得必应图片搜索页面看起来更加简洁,查找和使用也更加方便.更新后的图片缩略图更大,图片间的白色区域变窄,相关搜索列表更长,右侧栏还提供了趋势搜索列表. 和谷歌(微博)图

对于新手站长的七点优化建议

做站,相信各位最关注的还是排名,以及在网络中的出现率.在这里,我就来说10个小TIPS关于如何增加自己网站访问量的方法. 第一:为了方便优化,建议还是选用DIV+CSS的方法,这种方法的好处显然非常多,但最重要的就是这种模式可以尽可能的缩小网页的"体积",可以更方便轻松地被搜索引擎抓取.举个例子,假设你是搜索引擎,一样的东西,你是喜欢抓取轻松点的还是费力点的呢?一个道理,对吧? 第二:域名,你的域名一定要和你的网站标题相关.最起码是英文的翻译,但对于国内几大搜索引擎来讲,最好还是你网站

.NET程序的性能要领和优化建议

前几天在老赵的博客上看到,Bill Chiles (Roslyn 编译器的Program Manager)写了一篇文章叫做<Essential Performance Facts and .NET Framework Tips>.这篇文章是一个14页的pdf,当时我是在地铁上在Lumia手机上看的,觉得很是不错,这里也建议大家直接下载阅读原文,我这里试着翻译一下,以加深自己印象,后面也有一些思考,以下是原文内容: ----------------------------------------