如果所有这些比较在目标C中相互同等有效吗?

时间:2014-06-05 01:02:38

标签: ios objective-c if-statement

我正在编写一个涉及检查很多变量的iPhone应用程序。记住效率,我想知道每种if语句的相对负载。我关心的是:

if (Variable == 0);

if (Variable != 0);

if (Variable > 0);

if (Variable < 0);

if (Variable <= 0);

if (Variable >= 0);

基本上,我要问的是处理器和内存上的每个上述if语句需要多少负载。它们是真正平等的,还是比其他处理器更重的处理器?非常感谢!

2 个答案:

答案 0 :(得分:3)

您要比较的变量比您正在使用的运算符更重要。在您的问题中,您使用的是整数。除非你做了大量的比较,否则整数比较速度很快就会忘记对它进行基准测试。

如果使用对象,则依赖于该对象的运算符实现。这将需要更多的CPU周期,但不足以担心。

过早优化是万恶之源。代码优先并优化后!

答案 1 :(得分:-3)

我建议使用NSDate单独测试每个调用。我承认我不知道这是否是最好的方法,但它很简单。如果你愿意,你甚至可以用它自己的方法包装每个调用。以下是一个类似的问题,可以指导您:

How to log a method's execution time exactly in milliseconds?