最近我看到一条推文让我感到困惑(这是由一个XNA编码者发布的,在编写XNA游戏的上下文中):
微优化提示:在高频区域尽可能使用乘法而不是除法。它会快几个周期。
我非常惊讶,因为我一直认为编译器很聪明(例如,使用位移),最近读了Shawn Hargreaves的一篇文章也说了同样的事情。我想知道其中有多少真相,因为我的游戏中有很多计算。
我询问了一下,希望能得到一个示例,但原始作者无法提供。然而,他确实说了这个:
当它是"center = width / 2"之类的东西时并不总是如此。而且我已经确定"是值得的"。 :)
所以,我很好奇...
有人能给出一个代码示例吗?在这个示例中,您可以将除法更改为乘法,并获得性能增益,而C#编译器无法自行完成相同的操作。