asd001110 2016-05-24 13:35 采纳率: 0%
浏览 1075
已结题

cache line填充后运行时间问题

#include
#include

int main(int argc,char* argv[])
{
int len = 64*1024*1024;
int K =atoi(argv[1]);
int arr = (int)malloc(sizeof(int)*len);
int i;
for(i=0;i<len;i+=K)
{
arr[i]*=3;
}
return 0;
}

 按照http://blog.csdn.net/cool_way/article/details/41855595这篇文章说法,K的取值只有在
 16到32,64等64字节处 时间才会发生越变,可是我在Ubuntu上测试的结果却完全不同
 在1和2和4间变化较快,到了后面基本不变,这是什么原因,希望各位大牛解读

  • 写回答

1条回答 默认 最新

  • threenewbee 2016-05-24 13:40
    关注

    不同的处理器缓存的大小、速度、架构、层次、结合性、缓存淘汰算法是不同的,作者只是根据他的处理器的经验写的,没有普遍性。

    评论

报告相同问题?

悬赏问题

  • ¥15 如何用MATLAB实现以下三个公式(有相互嵌套)
  • ¥50 安装华大九天aether
  • ¥30 关于#算法#的问题:运用EViews第九版本进行一系列计量经济学的时间数列数据回归分析预测问题 求各位帮我解答一下
  • ¥15 setInterval 页面闪烁,怎么解决
  • ¥15 如何让企业微信机器人实现消息汇总整合
  • ¥50 关于#ui#的问题:做yolov8的ui界面出现的问题
  • ¥15 如何用Python爬取各高校教师公开的教育和工作经历
  • ¥15 TLE9879QXA40 电机驱动
  • ¥20 对于工程问题的非线性数学模型进行线性化
  • ¥15 Mirare PLUS 进行密钥认证?(详解)