首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >“干净数据缓存丢失”和“脏数据缓存丢失”的区别

“干净数据缓存丢失”和“脏数据缓存丢失”的区别
EN

Stack Overflow用户
提问于 2018-09-20 07:14:06
回答 1查看 1.5K关注 0票数 0

脏数据缓存丢失和干净数据缓存丢失之间有什么区别?

我在我的CPU手册中找到了它们的计数器,并且想知道哪一个是正确的方法来说明代码中数据访问的效率。

在我当前的程序中,干净的遗漏= 102271,而脏的遗漏= 1323。

  • 什么时候会出现一个干净的遗漏,数据是否会从内存中加载到一个干净的遗漏中?
  • 什么时候会发生不愉快的想念?(编辑:实际上这是明确的)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-09-20 11:43:55

按照手册的要求,数据缓存脏漏用“缓存回写/驱逐是必需的”来描述。

这是不好的措辞。我希望更有可能的意图是,如果这些缓存遗漏事件中的一行被修改,因此必须写到内存中,那么其中的一个事件就被认为是脏的。这与一个干净的缓存遗漏之间的区别是,一个干净的遗漏不是没有驱逐一行,就是驱逐了一个没有被修改的行,因此可以通过丢弃它而不把它写到内存中来驱逐它。如果这种解释是正确的,那么如果简单地说“需要缓存回写”,描述就会更加清晰。

如果注释是字面上的,意思是“/”,或者,“那么,如果一个缓存错过事件必须将数据写到内存中,或者不得不删除一行,那么它就被认为是脏的。那么,一个干净的缓存丢失将是一个缓存丢失,而不需要删除一行。这是一种不太可能的解释,因为典型设计的缓存只有在缓存初始化且所选缓存集尚未填充之后,才需要排除一行以腾出空间引入新行,或者如果行已手动从缓存中移除。通常在缓存中保留行,直到强制驱逐为止,因此缓存的正常状态是每个缓存集都是满的。在这个意义上的“干净缓存错过”,干净缓存丢失将是罕见的,而一个计数器为他们通常不会是有用的。此外,这一措辞将是多余的,因为当由于遗漏而出现缓存回写时,也存在驱逐,因此“缓存回写/驱逐是必需的”在逻辑上等同于“驱逐是必需的”。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52419573

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档