缓存了多少个缓存线
How many cache lines are cached?
好的,所以我找不到太多答案,这是内存管理中的一个简单问题。我知道,当计算机从内存中拉出时,它会根据处理器在缓存线中缓存32-64位的内存。我的问题是,如果有多少个?
例如,说我们使用的是C ,然后使用for循环拉动vector<int>
,然后我使用这些整数将信息从另一个vector
中撤出,这很可能是在内存中靠近它的地方。那会符合2次拉力,然后一切被缓存,还是只是从内存中持续拉出?基本上,它是否会拉出vector<int>
并将其存储在缓存中,然后将另一个vector
拉动并将其存储在不同的接线线中?因此,从那时起,只能从其缓存的内存中拉出两次?假设每个矢量=一个值的1个电源线的大小。
编辑:好的,在同一行上。...我有一个问题:让我们假设我的初始vector<int>
被调用并在for循环中迭代,然后引用多个vectors
。当它缓存这些向量时,显然它将有一个限制,因此它将开始在先前的缓存上写作吗?在哪种情况下,它将在以前的缓存线上编写什么顺序,FIFO,filo,其他方式?
有不同类型的缓存。通常,缓存的量取决于处理器。模型处理器具有3个级别的缓存,其中最快(和最小)称为L1,通常范围在128KB和512KB之间,其中最慢(最大)为1MB至4MB。
。无论处理器体系结构如何,对内存的每个访问均长64位。因此,使用64位长操作数访问内存是最有效的。
缓存也可以从不同页面存储内存。
相关文章:
- 复制列表初始化的隐式转换的等级是多少
- while循环中while循环的时间复杂度是多少
- cmake更新缓存的变量
- 试图对缓存进行跨步测试,但程序并没有结束
- 如何检查一个c++字符串中有多少相同的字符/数字
- C++有多少类型的循环
- 求出有多少个数字是完美平方,而sqrt()是L,R范围内的素数
- 缓存std::数组的选定元素,并在c++中自动保持其一致性
- 通过ccmake在cmake中缓存依赖选项
- 在条件变量中触发错误信号的频率是多少
- 函数的时间复杂度是多少?
- 必须为 C++20 协程帧保留多少内存?
- 对于四轴飞行器,PID中I控制器的理想值应该是多少
- C++,数组有多少个地址?
- 在C++中使用并行化的预期速度是多少(不是 OpenMp,而是 <thread>)
- 在 Linux 中存储区域设置名称的缓冲区大小应该是多少?
- 在内存不足之前,我可以声明多少个 const 变量?
- 缓存了多少个缓存线
- 缓存未命中的代价是多少
- 有多少对象(包含 std::vectors)加载到 L1/L2/L3 缓存中