读书人

写一个高性能的int 乘以9 的函数,该怎

发布时间: 2012-04-11 17:42:33 作者: rapoo

写一个高性能的int 乘以9 的函数
如题,如何处理为好?

[解决办法]
一般情况下CPU的位运算比乘除运算是快很多的,这也是我们优化的方向之一
*9的情况,上面各位大虾也给出*8+1的方案

我们懂,当然编译器也懂,但是因为编译器要兼顾所有情况,所有其针对特定case的优化能力有限,例如对于乘除法,对于无符号数的优化就比较好,对于有符号数则常常无能为力

所以,个人认为对于2-8原则中的影响性能的那20%的代码,有时间优化,还是自己做下优化~
[解决办法]
你就写 x * 9 , 在x86上合格的编译器都会优化成 leal (%eax,%eax,8) , %ecx 或者类似的代码.
[解决办法]
左移三位 等于乘以8,然后加上自己,即原来的9倍

读书人网 >C++

热点推荐