我该如何改进这段代码?
问题描述:
鲨鱼告诉我,这是糟糕的表现的一个热点:我该如何改进这段代码?
double distanceA = fabsf(target - current);
目标是CGFloat的 电流CGFloat的
我的计算其余依靠双。无论如何,也许有一些更聪明的方法来做到这一点?
答
不Xcode中附近的权利,但尝试:
double distanceA = (double) fabsf(target - current);
答
除非你有必要在你的距离双精度,改变距离为float。 CGFloat被定义为iPhone上的浮点数,fabsf()采用浮点值并返回浮点值。在处理双精度值时,iPhone可能会比标准浮点数慢得多。
事实上,对于距离变量使用双精度没有意义,因为通过fabsf()运行计算已经失去了精度,fabsf()只返回一个浮点数。
我认为这有助于提高性能。谢谢。 – 2009-11-23 01:56:04
我会认为这只是明确隐含已经发生的事情(从float到double的投射)?这会如何改善? (不是sn,,我不知道有关可可的事情) – Mikeb 2009-11-23 13:40:23
哈哈,我真的不知道。 IIRC,Xcode不喜欢它,当你没有明确地投入一个值。也许这在鲨鱼身上掀起了一面旗帜。这真的是我能想到的唯一(伪)错。 – 2009-11-23 17:23:58