小智 6
这取决于.重复执行一些指令可能会更快.这种技术通常称为循环展开.未展开的循环也可以变得更有效,因为代码将更小,并且许多CPU能够并且通常可以识别循环模式并预测它.也可以具有部分展开的循环.例如,不是直接执行20个指令或进行20个循环迭代,而是可以进行5次循环迭代,在每个循环中执行4条指令.
通常,如果不知道您所针对的架构(即CPU的型号和型号),很难说出什么是最好的.这就是为什么人们不会真正编写汇编代码的原因 - 分析不同方法的优缺点,执行成本,以及为不同的CPU品牌和模型生成不同的代码是编译器开发人员所做的事情.然后其他人用他们选择的语言编写代码,编译器为目标平台生成最好的程序集,这在99%的情况下都有效.
要回答你的问题,你可能要么自己编写两个版本并对它们进行分析以查看哪一个获胜.或者,您可以用C编写代码并为您的平台打开优化(即使用-O3,-march切换)并查看编译器生成的内容 - 它肯定是正确的.
希望能帮助到你.祝好运!
| 归档时间: |
|
| 查看次数: |
308 次 |
| 最近记录: |