我该如何改进这段代码?

问题描述:

鲨鱼告诉我,这是糟糕的表现的一个热点:我该如何改进这段代码?

double distanceA = fabsf(target - current); 

目标是CGFloat的 电流CGFloat的

我的计算其余依靠双。无论如何,也许有一些更聪明的方法来做到这一点?

不Xcode中附近的权利,但尝试:

double distanceA = (double) fabsf(target - current); 
+0

我认为这有助于提高性能。谢谢。 – 2009-11-23 01:56:04

+1

我会认为这只是明确隐含已经发生的事情(从float到double的投射)?这会如何改善? (不是sn,,我不知道有关可可的事情) – Mikeb 2009-11-23 13:40:23

+0

哈哈,我真的不知道。 IIRC,Xcode不喜欢它,当你没有明确地投入一个值。也许这在鲨鱼身上掀起了一面旗帜。这真的是我能想到的唯一(伪)错。 – 2009-11-23 17:23:58

除非你有必要在你的距离双精度,改变距离为float。 CGFloat被定义为iPhone上的浮点数,fabsf()采用浮点值并返回浮点值。在处理双精度值时,iPhone可能会比标准浮点数慢得多。

事实上,对于距离变量使用双精度没有意义,因为通过fabsf()运行计算已经失去了精度,fabsf()只返回一个浮点数。