Objective c 除法比乘法慢吗?

Objective c 除法比乘法慢吗?,objective-c,c,ios,xcode,performance,Objective C,C,Ios,Xcode,Performance,好吧,这听起来可能是个奇怪的问题,但这是一个有趣的问题。我是为iOS编写代码的,有人告诉我,最好是乘法,而不是除法,因为它速度更快 我知道,处理器这些天可能使这一点成为一个不成问题,但我的好奇心已经超过了我,我想知道是否有人可以为我提供一些线索 所以。。。。。我的问题是- 是: 慢于: player.position = ccp(player.contentSize.width * 0.5, winSize.height * 0.5); 是的,除法通常比乘法慢得多 但是,当除以文字(或任何在编

好吧,这听起来可能是个奇怪的问题,但这是一个有趣的问题。我是为iOS编写代码的,有人告诉我,最好是乘法,而不是除法,因为它速度更快

我知道,处理器这些天可能使这一点成为一个不成问题,但我的好奇心已经超过了我,我想知道是否有人可以为我提供一些线索

所以。。。。。我的问题是-
是:

慢于:

player.position = ccp(player.contentSize.width * 0.5, winSize.height * 0.5);

是的,除法通常比乘法慢得多


但是,当除以文字(或任何在编译时可以确定为常数的东西)时,编译器通常会优化除法。

可以并行地进行一定程度的乘法,如果可以使用任何一种,请使用乘法。

对于大多数处理器,对于相同的数据类型,除法比乘法慢。在您的示例中,乘法是浮点运算,如果
width
height
是整数类型,则结果可能会非常不同,并且可能取决于处理器和编译器


然而,大多数编译器(当然是GCC)都会将除法转换为更高效的右移,比如在您的示例中,将除法转换为2的恒定幂。这通常比乘法或除法都快。

这些东西不一样,除非
player.contentSize.width
winSize.height
是浮点数。如果
player.contentSize.width
winSize.height
是整数,为了提高速度而进行位移位怎么样?因为这段代码几乎肯定不在性能关键的循环中,所以几乎可以肯定的是,无论是除法还是乘法,它都无关紧要。只需专注于编写清晰、简洁和健壮的代码,只在真正需要的时候才考虑性能。编译器还可以通过3、5和其他小数字优化除法。如果放宽浮点模式,FP除法将替换为倒数乘法。
player.position = ccp(player.contentSize.width * 0.5, winSize.height * 0.5);