什么是缓存命中和缓存丢失?为什么上下文切换会导致缓存丢失?

什么是缓存命中和缓存丢失?为什么上下文切换会导致缓存丢失?

有人能用一种容易理解的方式解释缓存漏掉的概念及其可能的对立面(缓存命中)吗?

通常,缓存丢失是指在缓存中查找并没有找到某些内容时--缓存中没有包含正在查找的项。缓存命中是当您在缓存中查找某个内容时,它正在存储该项并能够满足查询。

为什么上下文切换会导致大量缓存丢失?

在内存方面,每个处理器都有一个内存缓存 --一个高速复制内存的小部分。当一个新线程被切换到处理器中时,本地缓存内存是空的,或者它不对应于线程所需的数据。这意味着由新线程进行的所有(或大部分)内存查找都会导致缓存丢失,因为它所需的数据没有存储在本地内存缓存中。然后,硬件必须向主内存发出许多请求,以填充本地内存缓存,这将导致线程最初运行得更慢。

相关文章