【正确答案】
C
【答案解析】[解析] 对于局部变量i和sum,循环体有良好的时间局部性。实际上,因为它们都是局部变量,任何合理的优化编译器都会把它们缓存在寄存器文件中,也就是存储器层次的最高层,故A、B错。
现在考虑对向量v的步长为1的应用。一般而言,如果一个高速缓存的块大小为B字节,那么一个步长为k的引用模式(这里k是以字为单位的)平均每次循环迭代会有。min(1,(wordsize×k)/B)次缓存不命中。当k=1时,它取最小值,所以对v的步长为1的引用确实是高速缓存“友好”的,即拥有良好的空间局部性,故D错,只有C的说法是正确的。