是否有更快的方法来比较两个变量?

Ano*_*ser 3 iphone performance cocoa-touch

我有这段代码,Shark告诉我这是一个性能瓶颈:

CGFloat shortestDistance = (distanceA < distanceB) ? distanceA : distanceB;
Run Code Online (Sandbox Code Playgroud)

所有这些值都是CGFloat.有没有更快的方法来确定哪一个更小并将其分配给shortestDistance?也许甚至通过引用而不是复制值?我该怎么做?以后如何访问?

顺便说一句,这是在非常紧凑的循环中执行的代码.每秒约60次.

Gre*_*ill 10

每秒60次不是一个紧凑的循环.就现代计算机而言,这是非常放松的.

似乎没有一种明显的方法可以改善这种表达方式; 你确定Shark表明确切的语句是一个问题,还是它指出了一个经常被调用的代码的更普遍的问题?


bri*_*gge 7

您可能遇到的是拇指/手臂FPU问题.iPhone应用程序默认编译为thumb,这是常规ARM表达式的16位子集.在拇指模式下,使用整数例程完成浮点运算.您可以关闭它并提高浮点性能.请参阅" 打破拇指以获得最佳iPhone性能 ".

alt text http://gamesfromwithin.com/wp-content/uploads/2009/01/thumb.png