简答题

分析比较以下三个函数的空间局部性,并指出哪个最好,哪个最差?

正确答案

对于函数clear1,其数组访问顺序与在内存的存放顺序完全一致,因此,空间局部性最好。
对于函数clear2,其数组访问顺序在每个数组元素内跳越式访问,相邻两次访问的单元最大相差3个int型变量(假定sizeof(int)=4,则相当于12B),因此空间局部性比clear1差。若主存块大小比12B小的话,则大大影响命中率。
对于函数clear3,其数组访问顺序与在内存的存放顺序不一致,相邻两次访问的单元都相差6个int型变量(假定sizeof(int)=4,则相当于24B)因此,空间局部性比clear2还差。若主存块大小比24B小的话,则大大影响命中率。

答案解析

相似试题
  • 比较栅格模型和矢量模型的特点、简述栅格数据和矢量数据常见的空间分析方法并举例说明。

    简答题查看答案

  • 调用函数malloc,便能得到一个所需结点的空间,并返回这个结点的总大小。

    判断题查看答案

  • 分析关系模式:STUDENT(学号,姓名,出生日期,系名,班号,宿舍区),指出其候选关键字,最小依赖集和存在的传递函数依赖。

    简答题查看答案

  • 设散列表容量为7(散列地址空间0..6),给定表(30,36,47,52,34),散列函数H(K)=Kmod6,采用线性探测法解决冲突,要求:(1)构造散列表;(2)求查找数34需要比较的次数。

    简答题查看答案

  • 对下列错误信息,请指出可能是编译的哪个阶段(词法分析、语法分析、语义分析、代码生成)报告的。 (1)else没有匹配的if (2)数组下标越界 (3)使用的函数没有定义 (4)在数中出现非数字字符

    简答题查看答案

  • 假设以顺序存储结构实现一个双向栈,即在一维数组的存储空间中存在着两个栈,它们的栈底分别设在数组的两个端点。试编写实现这个双向栈tws的三个操作:初始化inistack(tws)、入栈push(tws,i,x)和出栈pop(tws,i)的算法,其中i为0或1,用以分别指示设在数组两端的两个栈,并讨论按过程(正/误状态变量可设为变参)或函数设计这些操作算法各有什么有缺点。

    简答题查看答案

  • 绘制一个表示类的UML元素,并指出它主要包含哪三个部分?

    简答题查看答案

  • 试设定若干n值,比较两函数n2和50nIog2n的增长趋势,并确定n在什么范围内,函数n2的值大于50nIog2n的值。

    简答题查看答案

  • 定义一个Box(盒子)类,在该类定义中包括数据成员:length(长)、width(宽)和height(高);成员函数:构造函数Box,设置盒子长、宽和高三个初始数据;用函数volume计算并输出盒子的体积。在main函数中,要求创建Box对象,并求盒子的体积。

    简答题查看答案