【发布时间】:2013-09-04 17:50:52
【问题描述】:
来自JCIP book的第11章(性能和可扩展性)和名为上下文切换的部分:
当一个新线程切换进来时,它需要的数据不太可能是 在本地处理器缓存中,因此上下文切换会导致一系列 缓存未命中,因此线程在运行时运行得更慢 第一次安排。
- 谁能以易于理解的方式解释缓存未命中的概念及其可能的反面(缓存命中)?
- 为什么上下文切换会导致大量缓存未命中?
【问题讨论】:
-
缓存命中 - 在缓存中找到,无需“进一步”(进入内存、磁盘等)。没有什么其他的了。
-
另见What Every Programmer Should Know About Memory。除了关于预取线程和大量软件预取的部分外,它很旧但仍然相关。这部分主要只适用于 Pentium4,但有关多级缓存和为局部性和顺序访问布置数据的所有其他内容仍然适用。
标签: concurrency language-agnostic cpu cpu-architecture cpu-cache