cache_t分析
- cache_t的作用:用于快速查找方法
-
cache_t的特点:是可增量扩展的hash表结构
hash表结构 - 系统将使用频繁的方法放到缓存中,那么下次使用的时候就可以快速定位到函数的方法实现,从而加快访问速度。
-
可以理解为一个装载着bucket_t(结构体)的数组,bucket_t(结构体)有两个成员变量,sel:方法编号;imp:函数指针即函数实现;我们查找方法的时候,实际上就是通过sel经过哈希算法查找到cache_t数组的下标,从而找到imp函数实现。
哈希算法
一些概念:
capacity:总槽位
_mask:槽位-1
_occupied:实际使用了的槽位
buckets()[begin]:存放sel和imp的bucket_t,由mask_t begin = cache_hash(sel, m)计算得出;有可能槽位被占,则采取指针平移获取下一个槽(i+1)& mask;
3/4:实际使用了的槽位=总槽位*3/4,哈希表扩容2倍
cache_t insert流程图
网友评论