在c中优化数组循环

在c中优化数组循环,第1张

概述我已经在网上看了我的书,但我似乎无法得到这个. 我被要求优化程序的一小部分.特别是在不使用内置优化器的情况下,使用vi和 gcc在一小段时间内获取数组并添加其内容. 我尝试过循环展开和其他一些针对产品的优化.你能帮忙吗? int length = ARRAY_SIZE;int limit = length-4;for (j=0; j < limit; j+=5) { sum += ar 我已经在网上看了我的书,但我似乎无法得到这个.
我被要求优化程序的一小部分.特别是在不使用内置优化器的情况下,使用vi和 gcc在一小段时间内获取数组并添加其内容.
我尝试过循环展开和其他一些针对产品的优化.你能帮忙吗?

int length = ARRAY_SIZE;int limit = length-4;for (j=0; j < limit; j+=5) {    sum += array[j] + array[j+1] + array[j+2] + array[j+3] + array[j+4];}for(; j < length; j++){    sum += array[j];    }

数组值是非常量整数,所有值都已初始化.

解决方法 创建子总和,然后加总和.

这是它的外观的基本版本

for (j=0; j < limit; j+=4) {    sum1 += array[j];    sum2 += array[j+1];    sum3 += array[j+2];    sum4 += array[j+3];}sum = sum1 + sum2 + sum3 + sum4;

这避免了一些写后读依赖性 – 也就是说,每次循环迭代中sum2的计算不需要等待sum1的结果执行,并且处理器可以同时调度循环中的两条线.

总结

以上是内存溢出为你收集整理的在c中优化数组循环全部内容,希望文章能够帮你解决在c中优化数组循环所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1220561.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-05
下一篇 2022-06-05

发表评论

登录后才能评论

评论列表(0条)

保存