PHP静态延迟绑定和普通静态效率的对比
网络编程 2021-07-05 08:24www.168986.cn编程入门
这篇文章主要介绍了PHP静态延迟绑定和普通静态效率的对比的相关资料,这里举例说明他们之间的效率问题,需要的朋友可以参考下
PHP静态延迟绑定和普通静态效率的对比
只是一个简单的小实验,对比了下 延迟绑定 和 非延迟的效率
延迟绑定主要就是使用 static 关键字来替代原来的 self ,但功能非常强大了
实验代码
class A { protected static $1 = array('a1', 'b', 'c', 'd'); protected static $2 = array('a2', 'b', 'c', 'd'); protected static $3 = array('a3', 'b', 'c', 'd'); protected static $4 = array('a4', 'b', 'c', 'd'); protected static $5 = array('a5', 'b', 'c', 'd'); public static function n1() { return static::$1; } public static function n2() { return static::$2; } public static function n3() { return static::$3; } public static function n4() { return static::$4; } public static function n5() { return static::$5; } } class C extends A { } class B { protected static $1 = array('a1', 'b', 'c', 'd'); protected static $2 = array('a2', 'b', 'c', 'd'); protected static $3 = array('a3', 'b', 'c', 'd'); protected static $4 = array('a4', 'b', 'c', 'd'); protected static $5 = array('a5', 'b', 'c', 'd'); public static function n1() { return self::$1; } public static function n2() { return self::$2; } public static function n3() { return self::$3; } public static function n4() { return self::$4; } public static function n5() { return self::$5; } }
上面总共 A 、B 、C 三个类,里面全是静态成员变量和方法,其中
A 类是使用了静态延迟,
B 类是非延迟,
C 类是继承A类实现了静态成员变量和方法的延迟绑定。
过程也不多说了,环境是 PHP5.4.27 直接上测试结果
有两种情况,
1. 当只有 A、B类(也就是不让任何类继承A类)时,效率上几乎没有差别的
2. 当A类被C类继承了之后,使用静态延迟绑定的A类性能将会比 B类稍差一些(只要A类有了继承的类就会变慢)
循环十万次,耗时在 2.8s ~ 3.2s 之间 时间差距在 0.3 秒左右,应该还是可以忽略不计了吧
补充个后来加了些测试方法,如果 C 类继承 A 类后,重载了部分 A 类中的静态成员变量,重载的越多则速度和 B 类(非延迟)就越接近,但 A 类的速度仍然会比 B 类 和 C 类慢
如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
编程语言
- 如何快速学会编程 如何快速学会ug编程
- 免费学编程的app 推荐12个免费学编程的好网站
- 电脑怎么编程:电脑怎么编程网咯游戏菜单图标
- 如何写代码新手教学 如何写代码新手教学手机
- 基础编程入门教程视频 基础编程入门教程视频华
- 编程演示:编程演示浦丰投针过程
- 乐高编程加盟 乐高积木编程加盟
- 跟我学plc编程 plc编程自学入门视频教程
- ug编程成航林总 ug编程实战视频
- 孩子学编程的好处和坏处
- 初学者学编程该从哪里开始 新手学编程从哪里入
- 慢走丝编程 慢走丝编程难学吗
- 国内十强少儿编程机构 中国少儿编程机构十强有
- 成人计算机速成培训班 成人计算机速成培训班办
- 孩子学编程网上课程哪家好 儿童学编程比较好的
- 代码编程教学入门软件 代码编程教程