当前位置: 首页 > 知识库问答 >
问题:

邻近数据的大小现代计算机缓存的地方青睐

龙飞文
2023-03-14

我有一个1024个缓冲区的连续内存,每个缓冲区大小2K字节。我使用一个链表来记录可用的缓冲区(这里的缓冲区可以被认为是生产者和消费者使用的)。经过一些操作后,链接列表中缓冲区的顺序变得随机。

现代计算机体系结构非常倾向于紧凑的数据、局部性。当需要访问某个位置时,它会缓存相邻的数据。我的计算机的缓存线是64(从64K更正)字节。

问题1。就我的情况而言,由于我的访问模式是随机的,是否有很多缓存未命中?

问题2。现代计算机缓存的相邻数据的大小是多少?我认为如果访问整数数组中的一个位置,它将缓存相邻的整数。但是我的单位数据(2K)比int(4)大得多。因此,我不确定会缓存多少邻居。

共有1个答案

甄阿苏
2023-03-14

首先,我怀疑“我电脑的缓存线是64K字节”。很可能只有64字节。让我试着回答你的问题:

问题1。就我的情况而言,由于我的访问模式是随机的,是否有很多缓存未命中?

不一定。这取决于缓存后对缓冲区执行的操作数。

  • 所以,如果你缓存一个2K的缓冲区,并对其进行大量的连续工作,那么你的缓存命中率就会很高。正如Paul所建议的,如果启用了硬件预取,则效果会更好

问题2。现代计算机缓存的相邻数据的大小是多少?

通常,获取的邻居数由缓存线大小给出。如果行大小为64B,则可以获取16个整数值。因此,每次读取时,都会填充缓存线。但是,您需要考虑预取。如果您的CPU检测到内存读取是连续的,它将预取更多的邻居,并提前带来更多缓存线。

希望这有帮助!

 类似资料:
  • 本文向大家介绍K-近邻算法的python实现代码分享,包括了K-近邻算法的python实现代码分享的使用技巧和注意事项,需要的朋友参考一下 k-近邻算法概述: 所谓k-近邻算法KNN就是K-Nearest neighbors Algorithms的简称,它采用测量不同特征值之间的距离方法进行分类 用官方的话来说,所谓K近邻算法,即是给定一个训练数据集,对新的输入实例,在训练数据集中找到与该实例最邻

  • 我需要通过给定的背景色键为位图计算一个闭合裁剪矩形。在下面的图片中,你可以看到什么是关闭作物。左边是源,右边是关闭作物的输出: 正如你所看到的,我需要找到与背景颜色不同的最上面、最左边、最下面和最右边的像素来构建关闭裁剪矩形。那么,如何找到那些不同的外部像素来得到接近的裁剪矩形呢?或者,换句话说,如何计算位图的闭合裁剪矩形?

  • 本文向大家介绍Python实现KNN(K-近邻)算法的示例代码,包括了Python实现KNN(K-近邻)算法的示例代码的使用技巧和注意事项,需要的朋友参考一下 一、概述 KNN(K-最近邻)算法是相对比较简单的机器学习算法之一,它主要用于对事物进行分类。用比较官方的话来说就是:给定一个训练数据集,对新的输入实例,在训练数据集中找到与该实例最邻近的K个实例, 这K个实例的多数属于某个类,就把该输入实

  • 本文向大家介绍php计算整个mysql数据库大小的方法,包括了php计算整个mysql数据库大小的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了php计算整个mysql数据库大小的方法。分享给大家供大家参考。具体如下: 这里用MB,KB或者GB的格式返回计算结果。 希望本文所述对大家的php程序设计有所帮助。

  • 本文向大家介绍python K近邻算法的kd树实现,包括了python K近邻算法的kd树实现的使用技巧和注意事项,需要的朋友参考一下 k近邻算法的介绍 k近邻算法是一种基本的分类和回归方法,这里只实现分类的k近邻算法。 k近邻算法的输入为实例的特征向量,对应特征空间的点;输出为实例的类别,可以取多类。 k近邻算法不具有显式的学习过程,实际上k近邻算法是利用训练数据集对特征向量空间进行划分。将划分

  • 本文向大家介绍写个方法近似计算指定数组或对象占用内存的大小相关面试题,主要包含被问及写个方法近似计算指定数组或对象占用内存的大小时的应答技巧和注意事项,需要的朋友参考一下 参考文章