当前位置: 首页 > news >正文

石家庄个人建网站做网站维护学什么编程语言

石家庄个人建网站,做网站维护学什么编程语言,免费网站能到百度首页吗,微网站模板制作教程文章目录 iOS - Runtime - Class-方法缓存(cache_t)1. 散列表的存取值 iOS - Runtime - Class-方法缓存(cache_t) Class内部结构中有个方法缓存(cache_t),用散列表(哈希表)来缓存曾经调用过的方法,可以提高…

文章目录

  • iOS - Runtime - Class-方法缓存(cache_t)
      • 1. 散列表的存取值

iOS - Runtime - Class-方法缓存(cache_t)

Class内部结构中有个方法缓存(cache_t),用散列表(哈希表)来缓存曾经调用过的方法,可以提高方法的查找速度。(使用空间换时间的方式来提升速度)

其中,_buckets就是散列表_mask表示散列表的长度-1

哪一个类对象调用的方法,会把该方法缓存到这个类对象。也就是说,如果class1调用的方法,最终是在他的父类或者根类才找到方法实现,也会把方法混存到class1,下次class1再调用此方法,直接在自己的方法缓存里面就能找到方法

当前类查找,或者当前类没找到继续到父类或者跟根类,查找,都是优先缓存里面查找,缓存没找到再到方法列表里面去查找

1. 散列表的存取值

0NULL
1NULL
2bucket_t(_key = @selector(personTest), _imp)
3NULL
4NULL
5NULL
  • _buckets就是散列表,相当于一个数组,有个初始容量
  • 存取数据时,假设传入的是@selector(studentTest),使用@selector(studentTest)这个key& _mask,得出来的值作为数组的索引值,使用该索引值存取数据
  • @selector(studentTest) & _mask <= _mask,目的是控制得出来的索引值在数组最大容量范围之内
想象一下`&`运算后的值,一定是<= _mask
/**
0b00010101  
0b00000001     <- _mask
----------------- & 运算
0b00000001
*/
  • &_mask生成的索引值可能一样的,怎么解决,使用索引值先取一下,判断里面的key和我们要的key是否一样,不一样(或者已存在–存值时)直接将索引值-1,还一样就继续-1,减到索引值为0时,把索引值设置为_mask,继续找,然后再-1继续找,直到找到想要的key(或者空位–存值时)
  • 扩容,按原来空间2倍扩容。扩容的时候,会将缓存清掉,因为_mask的值已经变了

@oubijiexi

http://www.yayakq.cn/news/56782/

相关文章:

  • 远洋国际建设有限公司网站微信开放平台开发文档
  • 淘宝网页设计网站登录入口注册
  • 小程序制作模板网站黑龙江省鹤岗市城乡建设局网站
  • 湘潭网站定制it外包公司排行榜
  • php做网站后台教程北京网页制作公司电话
  • 石家庄有学校交做网站和优化的吗wordpress后台加载页面很慢
  • 药店网站源码wordpress 别名插件
  • 中搜网站提交响应网站和模板网站
  • 佛山市网站建设创建自由摄影师的网站内容
  • 网站内链怎么坐锚文本整站优化加盟
  • 建筑网站夜里几点维护谷歌优化师是做什么的
  • 电商网站 投诉个人做什么类型网站
  • 网页制作与网站建设江西网站布局分析
  • 全国蔬莱网站建设网站建设报价兴田德润
  • 保定建站公司模板怎么才能注册网站
  • 资源搜索网站是怎么做的中国比较大的外包公司
  • 云南建设人才网站首页郑州网站商城建设
  • 新华区设计网站公司利用网站制作网页
  • 排名seo公司哪家好重庆关键词seo排名
  • 类似卡盟网站卖怎么做星链友店
  • 网站建设在实际工作中的意义wordpress更改登录
  • 有没有帮忙做网站企业的网站品牌推广
  • 国内一家做国外酒店团购的网站搭建 网站的环节
  • 58同城 网站建设 成都淮阴网站建设
  • 犀牛云 做网站wordpress头像本地化
  • 怎么验证网站备案密码是否正确行情软件app网站大全下载
  • 特优项目网站建设方案汇天网络科技有限公司
  • 如何做视频网站 需要注意的地方企业邮箱手机怎么登录
  • 做个电商网站需要怎么做经典软文广告案例
  • 推广网络长沙seo网站排名优化