多重for循环优化,提升运行效率

您所在的位置:网站首页 for循环里用if会导致 多重for循环优化,提升运行效率

多重for循环优化,提升运行效率

2024-07-11 17:14| 来源: 网络整理| 查看: 265

对于一个可结合和可交换的合并操作来说,比如整数的加法或乘法, 我们可以通过将一组合并操作分割成 2 个或更多的部分,并在最后合并结果来提高性能。 原理: 普通代码只能利用 CPU 的一个寄存器,分割后可以利用多个寄存器。 当分割达到一个数量时,寄存器用完,性能不再提升,甚至会开始下降。 用代码来描述,如下:

// 一般情况下的代码 for (i = 1; i < n+1; i++) { res = res OPER i; } // 循环分割后代码for (i = 1; i < n; i+=2) { res1 = res1 OPER i; res2 = res2 OPER (i+1); }

int 整数加法,性能测试结果对比如下: 整数的加法,普通代码运行 26s,循环分割后,18s。 浮点数计算的性能提升,明显大于整数,乘法的性能提升,略大于加法。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3