php函数,伪函数的使用:函数名长,会影响到性能?

发布:2013-01-19 10:39   点击1043次   评论:0

函数名长,会影响到性能

对于php函数的使用,有如下一些建议

1. 一个功能可以用内置函数完成,尽量使用它而不是自己编写php函数。

2. 如果某个功能对性能要求很高,可以考虑用扩展来实现。

3. Php函数调用开销较大,因此不要过分封装。有些功能,如果需要调用的次数很多本身又

只用1、2行代码就行实现的,建议就不要封装调用了。

4. 不要过分迷恋各种设计模式,如上一条描述,过分的封装会带来性能的下降。需要考虑两者的权衡。

Php有自己的特点,切不可东施效颦,过分效仿java的模式。

5. 函数不宜嵌套过深,递归使用要谨慎。

6. 伪函数性能很高,同等功能实现下优先考虑。比如用isset代替array_key_exists

7. 函数返回引用没有太大意义,也起不到实际作用,建议不予考虑。

8. 类成员方法效率不比普通函数低,因此不用担心性能损耗。建议多考虑静态方法,可读性及安全性都更好。

9. 如不是特殊需要,参数传递都建议使用传值而不是传引用。当然,如果参数是很大的数组且需要修改时可以考虑引用传递。

http://bbs.csdn.net/topics/340005451

伪函数及其性能 

在php中,有这样一些函数,它们在使用上是标准的函数用法,但底层实现却和真正函数调用完全不同,这些函数

不属于前文提到的三种function中的任何一类,其实质是一条单独的opcode,这里估且叫做伪函数或者指令函数。 

如上所说,伪函数使用起来和标准的函数并无二致,看起来具有相同的特征。但是他们最终执行的时候是被zend

反映成了一条对应的指令(opcode)来调用,因此其实现更接近于if、for、算术运算等操作。 

》》php中的伪函数 

isset 

empty 

unset 

eval 

通过上面的介绍可以看出,伪函数由于被直接翻译成指令来执行,和普通函数相比少了一次函数调用所带来的开销,

因此性能会更好一些。我们通过如下测试来做一个对比。 Array_key_exists和isset两者都可以判断数组中某个key

是否存在,看一下他们的性能 

从图上可以看出,和array_key_exists相比,isset性能要高出很多,基本是前者的4倍左右,而即使是和空函数调用

相比,其性能也要高出1倍左右。由此也侧面印证再次说明了php函数调用的开销还是比较大的。 


关于 GitHub 导航 部门 反馈

提示:`/home.php`入口数据仅为演示功能,不构成任何交易凭证,也不承担相关风险和责任!

Copyright © 2011-2018 xxxxx.com All rights reserved.

Run:3.757/30.297(ms); 7(sql)/2.881(MB); comm:news/detail; Upd:2025-01-11 10:47:34