为什么有cpu缓存?
为了解决CPU运算速度与内存读写速度不匹配的矛盾,就出现了CPU缓存。
CPU的运算速度要比内存读写速度快很多,这样会使CPU花费很长的时间等待数据的到来或把数据写入到内存中。
cpu的三级缓存:L1>
L2>
L3
就像数据库缓存一样,获取数据时首先会在最快的缓存中找数据,如果缓存没有命中(Cache miss) 则往下一级找, 直到三级缓存都找不到时,那只有向内存要数据了。一次次地未命中,代表取数据消耗的时间越长
(一)查看方法:
方式1:
$ lscpu
L1d cache: 32K <span style="white-space:pre"> </span>(一级数据缓存)
L1i cache: 32K <span style="white-space:pre"> </span><span style="font-family: Arial, Helvetica, sans-serif;">(一级指令缓存)</span>
L2 cache: 256K <span style="white-space:pre"> </span>(二级缓存)
L3 cache: 8192K<span style="white-space:pre"> </span>(三级缓存)
方式2:
$ cat /proc/cpuinfo
cache size : 3072 KB
那么cpu、内存、缓存的区别是什么:
缓存cache,也叫高速缓存器
它存在于内存和cpu之间
cache:分为:L1,L2,L3
CPU可以从内存、cache和硬盘中读取数据,cache最快、内存次之、硬盘最慢。
读取速度:
cache(L1>L2>L3)>内存>磁盘