当前位置:  开发笔记 > 编程语言 > 正文

for-loop机制效率提示

如何解决《for-loop机制效率提示》经验,为你挑选了4个好方法。

由于我在大型多维数组上使用for循环,因此对for循环机制本身的任何保存都是有意义的.

因此,我正在寻找有关如何减少这种开销的任何提示.

例如:倒计时使用UINT而不是int和= 0,而不是停止> 0允许CPU少做工作(听说这一次,不知道它始终是真实的)



1> paxdiablo..:

一个重要的建议:尽可能多地计算外循环.并非所有编译器都能自动执行此操作.例如,而不是:

for row = 0 to 999
    for col = 0 to 999
        cell[row*1000+col] = row * 7 + col

使用:

for row = 0 to 999
    x = row * 1000
    y = row * 7
    for col = 0 to 999
        cell[x+col] = y + col



2> Lev..:

尝试使你的循环在内存中连续,这将优化缓存使用.也就是说,不要这样做:

for (int i = 0; i < m; i++)  
    for (j = 0; j < n; j++)  
        s += arr[j][i];

如果处理图像,则使用单个索引将两个循环转换为像素上的一个循环.

不要创建将运行零次的循环,因为管道已经过优化,假设循环将继续而不是结束.



3> Greg Hewgill..:

你测量了开销吗?您知道处理for循环花费了多少时间与执行应用程序代码花费了多少时间?你的目标是什么?



4> SteinNorheim..:

循环展开可以是一种方式.那是:

for (i=0; i

转换为:

for (i=0; i

在上面的示例中,当N不是4的倍数时,您将需要特殊处理.

推荐阅读
wurtjq
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有