关于双层循环的执行效率问题

wangzhen199009 2013-09-23 05:00:24


本人的测试结果


望能探讨一二
...全文
645 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
wangzhen199009 2013-12-02
  • 打赏
  • 举报
回复
引用 8 楼 u012680898 的回复:
楼主,把 20分 给我了吧,呵呵!
very thoughtful
wangzhen199009 2013-12-02
  • 打赏
  • 举报
回复
引用 7 楼 u012680898 的回复:
所以 ,你看到 第2个 执行时间 更长些,就是 memory 访问造成的。Data cache 不可能有 10000000*4 = 40M 这么大。
你说的我觉得很有道理~这一题选啥已经不重要了。重要的是。。。。。。。。。。。。分给谁(不好意思,那个我结贴早了,还是很谢谢你的回答
zzjbjpu 2013-11-28
  • 打赏
  • 举报
回复
楼主,把 20分 给我了吧,呵呵!
zzjbjpu 2013-11-28
  • 打赏
  • 举报
回复
所以 ,你看到 第2个 执行时间 更长些,就是 memory 访问造成的。Data cache 不可能有 10000000*4 = 40M 这么大。
zzjbjpu 2013-11-28
  • 打赏
  • 举报
回复
a[10000000] 是个很大的数组,数据cache 中不可能放得下,所以会有 cache miss 要从内存把数据交换到data cache 中。memory access 的速度要比cpu 慢很多。这时,对memory 的操作变成主要瓶颈。耗时比cpu 执行耗时要多很多。 b[1000] 则是个小数组,完全可以放到 data cache 中去。就没有 memory access 的问题。 它的时间 全是 cpu 执行的时间,要快很多。 所以考虑性能,包括2方面:1.是cpu 执行时间。 2.是memory 访问时间。 这两个时间之和 是所需要的时间。 还要综合考虑 I cache ,D cache 的效率。
wangzhen199009 2013-10-14
  • 打赏
  • 举报
回复
引用 4 楼 AA5279AA 的回复:
[quote=引用 3 楼 wangzhen199009 的回复:] [quote=引用 2 楼 AA5279AA 的回复:] 这个考过很多次了。。 双层for循环里面,要把大数放在里面一层。。 比如 for(100){ for(10000) } 比较的是100+100*10000次 for(10000){ for(100) } 比较的是10000+100*10000次。
你说的很有道理 但是测试结果为啥不行呢?[/quote] 理论和实践总是有差距的,毕竟101W比100W相差太小。 可以的话你做一个 for(100000){ for(2){ } } 和 for(2){ for(100000){ } } 的例子看看[/quote] bingo,结贴!
失落夏天 2013-10-13
  • 打赏
  • 举报
回复
引用 3 楼 wangzhen199009 的回复:
[quote=引用 2 楼 AA5279AA 的回复:] 这个考过很多次了。。 双层for循环里面,要把大数放在里面一层。。 比如 for(100){ for(10000) } 比较的是100+100*10000次 for(10000){ for(100) } 比较的是10000+100*10000次。
你说的很有道理 但是测试结果为啥不行呢?[/quote] 理论和实践总是有差距的,毕竟101W比100W相差太小。 可以的话你做一个 for(100000){ for(2){ } } 和 for(2){ for(100000){ } } 的例子看看
wangzhen199009 2013-10-12
  • 打赏
  • 举报
回复
引用 2 楼 AA5279AA 的回复:
这个考过很多次了。。 双层for循环里面,要把大数放在里面一层。。 比如 for(100){ for(10000) } 比较的是100+100*10000次 for(10000){ for(100) } 比较的是10000+100*10000次。
你说的很有道理 但是测试结果为啥不行呢?
失落夏天 2013-10-11
  • 打赏
  • 举报
回复
这个考过很多次了。。 双层for循环里面,要把大数放在里面一层。。 比如 for(100){ for(10000) } 比较的是100+100*10000次 for(10000){ for(100) } 比较的是10000+100*10000次。
Seneal 2013-09-26
  • 打赏
  • 举报
回复
同等高人解答。

2,408

社区成员

发帖
与我相关
我的任务
社区描述
高性能计算
社区管理员
  • 高性能计算社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧