诚招英才(长期):高级测试开发工程师、测试架构师,C++,java,ops;
联系方式:linhan@taobao.com
msn: niuxvampire@hotmail.com
google到的php提高效率的方法
上一篇 /
下一篇 2010-02-02 17:06:49
/ 个人分类:PHP
51Testing软件测试网#Rdf)]L6x&y4z0、用单引号代替双引号来包含字符串,这样做会更快一些。因为PHP会在双引号包围的字符串中搜寻变量,单引号则不会,注意:只有echo能这么做,它是一种可以把多个字符串当作参数的“函数”(译注:PHP手册中说echo是语言结构,不是真正的函数,故把函数加上了双引号)。51Testing软件测试网5j#q3Xf+@HT+f
`s@y-Cy01、如果能将类的方法定义成static,就尽量定义成static,它的速度会提升将近4倍。51Testing软件测试网[V*o n%Y~ST2M5e
D?~ dI&u02、$row[’id’] 的速度是$row[id]的7倍。
DH'v"F6k OZ051Testing软件测试网wG~W2q0bG3、echo 比 print 快,并且使用echo的多重参数(译注:指用逗号而不是句点)代替字符串连接,比如echo $str1,$str2。51Testing软件测试网,FQx!nHc,n
[4q4bUE3?(r04、在执行for循环之前确定最大循环数,不要每循环一次都计算最大值,最好运用foreach代替。51Testing软件测试网!d!Q
bp}K){x ]
2_~*m,V'w1d05、注销那些不用的变量尤其是大数组,以便释放内存。51Testing软件测试网-T9\S(Y
B/r5e
eYbRX O06、尽量避免使用__get,__set,__autoload。(还不知道为什么)
aX!|A0d[:RI ?051Testing软件测试网.SUn
BLi7、require_once()代价昂贵。 (因为效率慢,不过在5.2.x的版本中已做优化)51Testing软件测试网/rr vx^ t
51Testing软件测试网'KE%zJy.rt4C([
q8、include文件时尽量使用绝对路径,因为它避免了PHP去include_path里查找文件的速度,解析操作系统路径所需的时间会更少。51Testing软件测试网$a'{?4p+XvI
4IXxXy_
z$U09、str_replace函数比preg_replace函数快,但strtr函数的效率是str_replace函数的四倍。(试了一下,貌似果真如此)
0}"~#c`GK09R4h L/j?6k!pbS010、使用选择分支语句(译注:即switch case)好于使用多个if,else if语句。
0T9d3GLbeT-HX051Testing软件测试网v:x\vzes11、用@屏蔽错误消息的做法非常低效,极其低效。(没用过)51Testing软件测试网g%r-hn`ZO.r
51Testing软件测试网#onDW0~12、在方法中递增局部变量,速度是最快的。几乎与在函数中调用局部变量的速度相当。51Testing软件测试网:\8Kd} W8TWZ
51Testing软件测试网#pJu:rO \13、递增一个全局变量要比递增一个局部变量慢2倍。
#A9d:`4v,`1Me5W0F051Testing软件测试网\i \C*|9s)z9A14、递增一个对象属性(如:$this->prop++)要比递增一个局部变量慢3倍。51Testing软件测试网6bgl$oT8n8t
51Testing软件测试网*}5E8TSU\\k%P]Ql15、递增一个未预定义的局部变量要比递增一个预定义的局部变量慢9至10倍。51Testing软件测试网
B"W:j6WS8}4n1H
51Testing软件测试网@:c~9K f/y~,A16、仅定义一个局部变量而没在函数中调用它,同样会减慢速度(其程度相当于递增一个局部变量)。PHP大概会检查看是否存在全局变量。
z8I%Gy4uH0wLb&V