1、如果一个方法可以静态化,就做静态声明,速率可以提升至4倍
2、echo 快于 print
3、使用echo的多重参数代替字符串连接(指用逗号而不是句号)
4、在执行for循环之前确定最大循环数,不要没循环一次都计算最大值
5、注销不用的变量尤其是大数组,以便释放内存
6、尽量避免使用__get、__set、__autoload
7、require_once()代价昂贵
8、在包含文件时使用完整路径,解析操作系统路径需要的时间会更少
9、如果想要知道脚本开始执行时间(即服务器端收到客户端请求)的时刻,使用$_SERVER['REQUEST_TIME']要好于time()
10、检查是否能用strncasecmp、strpbrk、stripos函数代替正则表达式完成相同功能
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]de 7倍
18、错误消息代价昂贵
19、尽量不要在for循环中使用函数
20、在方法中递增局部变量,速度是最快的
21、递增一个全局变量要比递增一个局部变量慢2倍
22、递增一个对象属性(如$this->prop++)要比递增一个局部变量慢3倍
23、递增一个未定义的局部变量要比递增一个预定义的局部变量慢9到10倍
24、仅顶一个一个局部变量而没有在函数中调用它,同样会加满速度
25、方法调用看来与类中定义的方法的数量无关
26、派生类中的方法运行起来要快于在基类中定义的同样方法
27、调用带有一个参数的空函数,其花费的时间相当于执行7到8次的局部变量递增操作
28、使用单引号代替双引号包含字符串
29、输出多个字符串时用逗号代替句点来分隔字符串,速度更快,echo
30、Apache解析一个PHP脚本的时间要比解析一个静态HTML页面慢2至10倍,尽量多用静态HTML页面,少用脚本。
31、除非脚本可以缓存,否则每次调用都会重新编译一次,引入一套PHP缓存机制通常可以提升25%到100%的性能,以免编译开销
32、尽量做缓存,可使用memecached。memcached是一款高性能的内存对象缓存系统,可用来加速动态Web应用程序,减轻数据库浮在。对运算吗(OP Code)的缓存很有用,使得每个脚本不必为每个请求做重新编译。
33、当操作字符串并需要检验其长度时候满足要求时,你会想当然使用strlen()函数。此函数执行起来相当快,因为它不做任何计算,只返回zval结构(C的内置数据结构,用于存储PHP变量)中存储已知字符串的长度。但是,由于strlen()是函数,多多少少会有些慢,因为函数调用会经过诸多步骤,在某些情况下,可以使用isset()技巧加速执行你的代码
34、当执行变量$i的递增或递减时,$i++会比++$i忙一些。这种差异是PHP特有的,并不适用于其他语言。++$i更快是因为他需要3条指令,$i++需要4条指令。后置递增时间上会产生一个临时变量,这个临时变量随后被递增。而强制递增直接在原值上递增。这是优化处理的一种,正如Zend的PHP优化器所做的那样。牢记这个优化处理不失为一个好主意,因为不是所有指令优化器会做同样的优化处理,并且存在大量没有装配指令优化器的互联网服务提供商人(ISPs)和服务器。
35、并不是事必面向对象(OOP),面向对象玩玩开销很大,每个方法和对象调用都会消耗很多内存。
36、并非要用类实现所有的数据结构,数组也很有用
37、不要把方法细分得过多,仔细想想你真正打算重用的是哪些代码
38、当你需要时,你总能把代码分解成方法
39、尽量大量采用PHP内置函数
40、如果在代码中存在大量耗时的函数,可以考虑用C扩展方式实现它们
41、评估检验你的代码,检验器会告诉你,代码的哪些部分消耗了多少时间。Xdebug调试器包含了检验程序,评估检验总体上可以显示出代码的瓶颈
42、mod_zip可作为Apache模块,用来即时压缩你的数据,并可让数据传输量降低80%