什么是CPU跨切循环层?

xqlez 2004-09-23 03:15:31
在多重循环中,如果有可能,应当将最长的循环放在最内层,最短的循环放在最外层,以减少CPU跨切循环层的次数。
---------------------------------
CPU跨切循环层是什么意思,CPU是怎么做的?
它究竟是个什么东西呢?
...全文
732 23 打赏 收藏 转发到动态 举报
写回复
用AI写文章
23 条回复
切换为时间正序
请发表友善的回复…
发表回复
sn216 2004-09-24
  • 打赏
  • 举报
回复
高手,up
kobefly 2004-09-24
  • 打赏
  • 举报
回复
学到了很多东西
逸学堂 2004-09-24
  • 打赏
  • 举报
回复 1
CPU进行数据处理时候.是先把数据从内存中读到CPU芯片中的cache中去,
而读数据是在cache中+1操作的!也就是说.如果没有跳转语句比如
break,goto等等.cache中保存的数据都是在内存中顺序的数据,当出现跳转
语句时,cache才会到内存的响应地址读取内存的内容,这样就会增加执行代码的
时间消耗.衡量一段代码的效率问题的一个方面也可以用cache命中率!
lynnboy(lynnboy) 说的很有道理!
还有一条就是在循环体中尽量少用判断语句,这样会大大降低循环的执行效率.
尽量把判断放在循环体外部
haha52 2004-09-24
  • 打赏
  • 举报
回复
学习。
athena301 2004-09-24
  • 打赏
  • 举报
回复
保留....
  • 打赏
  • 举报
回复
学到不少东西。
wyh2002 2004-09-24
  • 打赏
  • 举报
回复
UP,又学到不少东西。
linpidity2004 2004-09-23
  • 打赏
  • 举报
回复
不错

学习 顶下...
nicewinds 2004-09-23
  • 打赏
  • 举报
回复
在优化程序中,主要优化的就是循环,我估计也是一种优化方法把
731DBA 2004-09-23
  • 打赏
  • 举报
回复
mark!
ironfox 2004-09-23
  • 打赏
  • 举报
回复
言之有理!
eaglessky 2004-09-23
  • 打赏
  • 举报
回复
lynnboy(lynnboy) 分析的很好。
lynnboy 2004-09-23
  • 打赏
  • 举报
回复
这个“跨循环层”的概念本身是说,由外层循环进入内层循环是要重新初始化循环计数器的,包括保存外层循环的计数器和加载内层循环计数器,退出内层的时候再恢复外层循环计数器。把长循环放在里面可以显著减小这些操作的数量。
但是另一方面还要注意数据结构本身的效率。
lynnboy 2004-09-23
  • 打赏
  • 举报
回复
你知道CPU指令流水线和指令、数据的Cache命中的概念吗?如果你的“跳读”会跨越cache交换块,甚至page边界的话,就会造成CPU数据cache重新批量装载数据,甚至从虚拟内存中恢复磁盘数据,这当然严重影响效率。
eaglessky 2004-09-23
  • 打赏
  • 举报
回复
????????????????????????????????
? ?
? 有一个问题是:我们知道数组中的数据是先按行再按列存放的。?
? 比如在计算数组和时,如果把列放在内层(仅管是长循环),在扫 ?
? 描元素时,不是连续读取,而是跳读的,会不会又影响了效率呢? ?
? ?
????????????????????????????????
pengweicn 2004-09-23
  • 打赏
  • 举报
回复
主要是出于“流水线”作业以及内存分页管理的关系考虑
bm1408 2004-09-23
  • 打赏
  • 举报
回复
尽量保证顺序的访问数组的每一个元素。由于Windows内存的管理模式,内存是分页管理的。顺序访问数组可以基本保证页面不会来回切换,从而减少了页失效的数量,提高了程序的整体性能。这种性能的提升对于大的数组尤为明显。
pacman2000 2004-09-23
  • 打赏
  • 举报
回复
他忽略了数组是线性存放的事实,用col增长的方式肯定快,cache预先读取的命中高
laomai 2004-09-23
  • 打赏
  • 举报
回复
刚才仔细看了一下,这好象是林锐的XX指南里写,事实上,这个例子不恰当,因为他虽然提高了编译效率,但是降低了运行时的效率。
avalonBBS 2004-09-23
  • 打赏
  • 举报
回复
不晓得, 以前倒是看过CPU用什么流水线什么的.... 听下面的讲^^
加载更多回复(3)

69,374

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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