【问题标题】:Code duplication reduces effective cache size代码重复减少了有效缓存大小
【发布时间】:2015-05-16 05:05:31
【问题描述】:

我正在阅读 Scott Mayor 的演讲,他提到了这句话:

内联的缺点:代码重复减少了有效缓存大小

我没有看到代码重复与有效缓存大小有什么关系

【问题讨论】:

  • 如果一个经常使用的函数没有被内联,那么它的代码就存在于内存中的一个位置,这个位置会经常被命中,因此很可能大部分时间都在缓存中。另一方面,如果它是内联的,许多代码副本将存在于不同的位置,因此缓存没有那么有用。
  • 完全有道理,不知道我是怎么错过的。谢谢
  • @cicada 应该是回答而不是评论

标签: c++ cpu-cache


【解决方案1】:

重复代码意味着相同的指令在连续的内存地址上重复,而不是在循环体中拥有这些指令的一个副本。这意味着许多缓存行都填充了相同的内容,而不仅仅是少数几个。由于这些指令被频繁访问(每次循环运行一次),它们可能不会离开缓存,因此其他代码(或统一缓存时的数据)必须离开,如果填充缓存的频繁访问指令数量较少,则不会发生这种情况条目。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-23
    相关资源
    最近更新 更多