CppCoreGuidelines:什么是热整数副本?

我一直在读CppCoreGuidelines F.15,但我不理解参数传递表中的以下句子:

“便宜”≈少数热门int副本
“成本适中”≈大约1KB的热/连续内存,没有分配

“热整数复制”是什么意思?

iCMS 回答:CppCoreGuidelines:什么是热整数副本?

在这种情况下,“热”可能是指被缓存的可能性。如果某个特定的内存很可能不在高速缓存中,则该内存为“冷”内存,这是由于最近未在此执行线程中对其进行触摸。相反,如果某个内存可能最近被触摸过,或者与最近触摸过的内存相邻,那么它就是“热门”。

因此,它谈论的是对当前在高速缓存中的某些东西进行内存复制的成本,因此从实际的内存带宽来看很便宜。

例如,考虑一个返回array<int,50>的函数。如果该数组中的值是由函数本身生成的,则这些整数是“热”的,因为它们几乎肯定仍在高速缓存中。因此,按值返回就可以了。

但是,如果某些数据结构包含这种类型,则此函数可以简单地检索到指向该对象的指针。按值返回它意味着要进行几次未缓存的内存访问,因为您必须复制到返回值。从内存缓存的角度来看,这并不理想,因此也许返回一个指向数组的指针会更合适。

很明显,未缓存的访问将以任何一种方式发生,但是在后一种情况下,调用方可以决定执行哪些访问和不执行哪些访问。

本文链接:https://www.f2er.com/1915397.html

大家都在问