slab着色

2019年01月09日 15:03:49 rikeyone 阅读数:44更多
所属专栏: 深入浅出内存管理
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/rikeyone/article/details/86153809

对于大小相同的slab object,虽然处于不同的物理地址处,但是由于cache访问地址的规则,这两个地址很有可能会被分配给同一个cache line去加载,那么会带来一个问题,比如软件中反复去读取这样的两个对象,那么会带来什么后果呢?
我们发现对应的cache line需要被反复刷新,而其余的cache line却未被充分利用。

我们知道不同的cache line只能加载特定地址偏移的地址,比如

cacheline0--0,32,64...
cacheline1--1,33,65...

我们知道slab都是通过页分配器来进行分配的,也就是它的单位是页大小的,并且其中有一些是未使用的free空间,那么通过对不同的slab起始地址进行一个偏移,那么对应的object也都会具有一个偏移,如果每个slab的偏移都不同,那么不同slab中的对象地址偏移都会不同,就可以使用不同的cache line来加载了,这就是slab着色的概念,可以充分利用硬件cache line的功能,提升系统的访问效率。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值