哪个是目标c中更快的运算符

时间:2014-03-29 17:21:16

标签: ios iphone objective-c ipad operators

我在代码中经常使用==!=,我想知道在目标c中哪个更快,以便我可以尽快制作我的应用。

场合

我有一个变量,这是两件事之一,我想要最快的方法来查看它是哪一个

提前致谢

3 个答案:

答案 0 :(得分:3)

除非您发现性能问题,否则您不应担心性能原因的详细程度。

然而,想要满足探究心灵是另一回事! :-)答案是它们是相同的。

比较通常被编译为设置条件标志的指令;这可以是特定的比较指令或类似于设置条件代码的算术指令;然后是条件跳转,它测试条件标志 - 对“等于”的测试与“不等于”的成本相同,只是这些条件标志的不同设置。

这也意味着if([some method call]) ...if(![some method call]) ...等语句具有相同的成本 - “not”运算符不会产生额外的代码。

答案 1 :(得分:0)

你可以测试自己。 检查操作前后的当前毫秒数。 我想没有区别......

如果你真的需要知道, 你可以用循环来做很多操作。

然后你会得到答案。

答案 2 :(得分:0)

这太傻了。您必须使用if语句的2个版本执行数百万次代码迭代,以便甚至检测速度差异。这是一个微不足道的事情,不值得担心。

正如另一张海报所说,==和!=应该对非浮点值采用完全相同的时间。对于浮点,可能存在一些差异,因为对于相等的比较,处理器必须首先标准化2个浮点值,然后比较它们,并且标准化相对耗时。我不知道如果测试不平等,如果慢于平等。这不太可能,但并非不可能。