首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >位移位快速乘法带来的性能提升

位移位快速乘法带来的性能提升
EN

Stack Overflow用户
提问于 2011-10-11 04:27:45
回答 1查看 654关注 0票数 2

最近我读了很多关于编程实践、设计等等的文章,我很好奇将乘法实现为位移位会带来什么真正的性能提升。

我读到的示例鼓励将x*320实现为常用例程的(x<<8 + x<<6)。

这在现代编译器中有多重要?如果有显著的性能提升,编译器是否可以在必要时自动将这些“简单乘法”转换为位移位?

有没有人必须在他们的项目中以这种方式使用位移位来实现更快的乘法?您可以期望获得哪些性能收益?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-10-11 04:32:41

是的,编译器将为您完成这些工作中的大部分。他们对此也很有攻击性。所以很少有必要自己去做。(特别是以可读性为代价)

然而,在现在的现代机器上,乘法并不比移位慢得多。因此,任何需要超过2个移位的数字都最好使用乘法。编译器知道这一点,并会做出相应的选择。

编辑:

根据我的经验,我在这方面从来没有超越过编译器,除非代码是通过SSE内部函数向量化的(编译器实际上并不会尝试优化)。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7718287

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档