多重for循环优化,提升运行效率 |
您所在的位置:网站首页 › for循环里用if会导致 › 多重for循环优化,提升运行效率 |
对于一个可结合和可交换的合并操作来说,比如整数的加法或乘法, 我们可以通过将一组合并操作分割成 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 |