首页 > 试题广场 >

作为另一个具有潜在的加载-存储相互影响的代码,考虑下面的函数

[问答题]
作为另一个具有潜在的加载-存储相互影响的代码,考虑下面的函数,它将一个数组的内容复制到另一个数组:
void copy_array(long *src, long *dest, long n)
{
    long i;
    for (i= 0;i< n; i++)
        dest[i] = src[i];
}
假设a是一个长度为1000的数组,被初始化为每个元素a[门等于i。
A.调用copy_ array(a+1,a,999)的效果是什么?
B.调用copy_ array(a,a+1,999)的效果是什么?
C.我们的性能测试表明问题A调用的CPE为1.2(循环展开因子为4时,该值下降到1.0), 面问题B调用的CPE为5.0。 你认为是什么因素造成了这样的性能差异?D.你预计调用copy_ array(a,a,999)的性能会是怎样的?

这道题你会答吗?花几分钟告诉大家答案吧!