cpu高速缓存命中率

cpu高速缓存命中率

一、cpu高速缓存命中率

从硬件上来说存储体系的分布如下:
在这里插入图片描述
其中磁盘和远程二级存储是不带电存储,而主存、高速缓存和寄存器是带电存储。
我们的数据是从内存向上,先到L3,再到L2,再到L1,最后到寄存器进行CPU计算。
缓存基本上来说就是把后面的数据加载到离自己近的地方,对于CPU来说,它是不会一个字节一个字节的加载的,因为这非常没有效率,一般来说都是要一块一块的加载的,对于这样的一块一块的数据单位,一个主流的CPU的Cache Line 是 64 Bytes(也有的CPU用32Bytes和128Bytes),64Bytes也就是16个32位的整型,这就是CPU从内存中捞数据上来的最小数据单位。
在这里插入图片描述
当访问存储1数据的内存位置0x00123400时。先看这个地址在不在缓存中。
在就直接访问,不在就先加载到缓存,再访问。(一般来说第一次访问都不命中)
那第一次访问都不命中那为什么数组的命中率高呢?
由于数组的存储是一块连续的内存,CPU一般来说都是要一块一块的加载的。所以当CPU要访问2地址的时候,2的地址大概率已经跟着1被提前加载到CPU中了,所以减少了加载2地址的时间。
而对于链表来说它的地址是不连续的,所以当访问到2的地址时大概率要重新加载到缓存。
在这里插入图片描述

所以链表的命中率要低于顺序表。

  • 8
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

清晨白米稀饭.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值