PHP静态延迟绑定和普通静态效率的对比


Posted in PHP onOctober 20, 2017

PHP静态延迟绑定和普通静态效率的对比

只是一个简单的小实验,对比了下 延迟绑定 和 非延迟的效率

延迟绑定主要就是使用 static 关键字来替代原来的 self ,但功能非常强大了

实验代码:

class A { 
  protected static $cc1 = array('a1', 'b', 'c', 'd'); 
  protected static $cc2 = array('a2', 'b', 'c', 'd'); 
  protected static $cc3 = array('a3', 'b', 'c', 'd'); 
  protected static $cc4 = array('a4', 'b', 'c', 'd'); 
  protected static $cc5 = array('a5', 'b', 'c', 'd'); 
 
  public static function n1() { 
    return static::$cc1; 
  } 
  public static function n2() { 
    return static::$cc2; 
  } 
  public static function n3() { 
    return static::$cc3; 
  } 
  public static function n4() { 
    return static::$cc4; 
  } 
  public static function n5() { 
    return static::$cc5; 
  } 
} 
 
class C extends A { 
 
} 
 
class B { 
  protected static $cc1 = array('a1', 'b', 'c', 'd'); 
  protected static $cc2 = array('a2', 'b', 'c', 'd'); 
  protected static $cc3 = array('a3', 'b', 'c', 'd'); 
  protected static $cc4 = array('a4', 'b', 'c', 'd'); 
  protected static $cc5 = array('a5', 'b', 'c', 'd'); 
 
  public static function n1() { 
    return self::$cc1; 
  } 
  public static function n2() { 
    return self::$cc2; 
  } 
  public static function n3() { 
    return self::$cc3; 
  } 
  public static function n4() { 
    return self::$cc4; 
  } 
  public static function n5() { 
    return self::$cc5; 
  } 
}

上面总共 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 类慢

如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

PHP 相关文章推荐
一些使用频率比较高的php函数
Oct 03 PHP
PHP函数之日期时间函数date()使用详解
Sep 09 PHP
Yii 快速,安全,专业的PHP框架
Sep 03 PHP
深入分析PHP引用(&)
Sep 04 PHP
PHP实现获取某个月份周次信息的方法
Aug 11 PHP
PHP常用的小程序代码段
Nov 14 PHP
php实现在线通讯录功能(附源码)
May 13 PHP
PHP实现数据分页显示的简单实例
May 26 PHP
PHP xpath()函数讲解
Feb 11 PHP
PHP使用JpGraph绘制折线图操作示例【附源码下载】
Oct 18 PHP
php设计模式之备忘模式分析【星际争霸游戏案例】
Mar 24 PHP
PHP手机号码及邮箱正则表达式实例解析
Jul 11 PHP
php+ajax实现仿百度查询下拉内容功能示例
Oct 20 #PHP
详解cookie验证的php应用的一种SSO解决办法
Oct 20 #PHP
thinkPHP5项目中实现QQ第三方登录功能
Oct 20 #PHP
PHP简单实现二维数组赋值与遍历功能示例
Oct 19 #PHP
phpStudy2016 配置多个域名期间遇到的问题小结
Oct 19 #PHP
phpStudy配置多站点多域名方法及遇到的403错误解决方法
Oct 19 #PHP
PHP自定义函数实现数组比较功能示例
Oct 19 #PHP
You might like
PHP取整数函数常用的四种方法小结
2012/07/05 PHP
ThinkPHP CURD方法之table方法详解
2014/06/18 PHP
PHP的APC模块实现上传进度条
2015/10/27 PHP
thinkPHP5 tablib标签库自定义方法详解
2017/05/10 PHP
在javaScript中关于submit和button的区别介绍
2013/10/20 Javascript
Html5的placeholder属性(IE兼容)实现代码
2014/08/30 Javascript
jquery实现增加删除行的方法
2015/02/03 Javascript
jQuery实现动画效果circle实例
2015/08/06 Javascript
详解JavaScript中localStorage使用要点
2016/01/13 Javascript
百度坐标(BD09)、国测局坐标(火星坐标,GCJ02)、和WGS84坐标系之间的转换
2016/02/19 Javascript
完美解决jQuery符号$与其他javascript 库、框架冲突的问题
2016/08/09 Javascript
Node.js中多进程模块Cluster的介绍与使用
2017/05/27 Javascript
详解node-ccap模块生成captcha验证码
2017/07/01 Javascript
JavaScript中重名的函数与对象示例详析
2017/09/28 Javascript
Vue源码学习之初始化模块init.js解析
2017/11/02 Javascript
将jquery.qqFace.js表情转换成微信的字符码
2017/12/01 jQuery
详解Vue-cli中的静态资源管理(src/assets和static/的区别)
2018/06/19 Javascript
jQuery实现参数自定义的文字跑马灯效果
2018/08/15 jQuery
vue跳转同一个组件,参数不同,页面接收值只接收一次的解决方法
2019/11/05 Javascript
[43:57]Liquid vs Mineski 2019国际邀请赛小组赛 BO2 第二场 8.16
2019/08/19 DOTA
[01:01:52]完美世界DOTA2联赛PWL S2 GXR vs Magma 第二场 11.25
2020/11/26 DOTA
python中文乱码的解决方法
2013/11/04 Python
Python中的True,False条件判断实例分析
2015/01/12 Python
安装dbus-python的简要教程
2015/05/05 Python
Python的Socket编程过程中实现UDP端口复用的实例分享
2016/03/19 Python
python 字符串转列表 list 出现\ufeff的解决方法
2017/06/22 Python
python中requests使用代理proxies方法介绍
2017/10/25 Python
使用python实现滑动验证码功能
2019/08/05 Python
python函数局部变量、全局变量、递归知识点总结
2019/11/15 Python
python requests.get带header
2020/05/05 Python
Django 构建模板form表单的两种方法
2020/06/14 Python
顶级宝石首饰网络零售商:Angara
2016/10/25 全球购物
海外淘书首选:AbeBooks
2017/07/31 全球购物
英国IT硬件供应商,定制游戏PC:Mesh Computers
2019/03/28 全球购物
2015年高校教师个人工作总结
2015/05/25 职场文书
出纳试用期工作总结2015
2015/05/28 职场文书