从第11章(性能和可伸缩性)以及JCIP书籍中名为上下文切换的部分开始:
切入新线程时,所需的数据不太可能位于本地处理器高速缓存中,因此上下文切换会导致大量高速缓存未命中,因此在首次调度线程时,它们的运行速度会稍微慢一些。
- 有人能以一种易于理解的方式解释高速缓存未命中的概念及其可能的对立面(高速缓存命中)吗?
- 为什么上下文切换会导致很多缓存丢失?
Answers:
有人可以用一种易于理解的方式来解释高速缓存未命中的概念及其可能的反义(高速缓存命中)吗?
通常,高速缓存未命中是在高速缓存中查找某些内容但未找到某些内容时–高速缓存不包含正在查找的项目。高速缓存命中是当您在高速缓存中查找内容时,它正在存储项目并且能够满足查询。
为什么上下文切换会导致很多缓存丢失?
在内存方面,每个处理器都有一个内存缓存–主内存一小部分的高速副本。当将新线程上下文切换到处理器时,本地缓存内存为空,或者与该线程所需的数据不对应。这意味着该新线程进行的所有(或大多数)内存查询都会导致高速缓存未命中,因为所需的数据未存储在本地内存高速缓存中。然后,硬件必须向主内存发出大量请求,以填满本地内存缓存,这导致线程最初运行速度较慢。
x-cache
。而且我看到了一些意外的行为。即使这是我第一次播放GET
图像,我仍然得到HIT
1。 是否HIT
意味着HIT
缓存在客户端,或手段HIT
上的任何东西,但你即服务器可以得到一个缓存从CDN结果呢?因为我得到了“ cloudfront的HIT”,并进行了查找,发现cloudfront是CDN。