在循环中比较或重新分配bool是否更快?

时间:2013-06-12 17:46:58

标签: oop optimization variable-assignment

问题是:这样做会更快:

if (!self.isStarted)
{
     self.started = YES;
}

或简单地说:

self.started = YES;

并在每次传递循环时重新分配值。

2 个答案:

答案 0 :(得分:1)

虽然编译器可能会对此进行优化,但self.started = YES;会更快,因为它可以节省从内存中检索值并进行比较的开销。这个答案仅适用于低级语言;高级语言将依赖于实现。

答案 1 :(得分:1)

条件较慢,并不像简单地将变量设置为YES那样清晰。你的代码的重点在于你想要在保留代码之后确保变量为YES,并且因为在宏观方案中操作是如此便宜,为了便于阅读,只需将其设置为YES而不事先检查