【问题标题】:What is faster? Enumeration VS For loop什么更快?枚举 VS For 循环
【发布时间】:2011-07-07 15:11:59
【问题描述】:

Objective C 和 iphone 哪个更快?自枚举还是for循环?

我有 2 段代码可以帮助我比较。

对于这个例子,我们有一个事实,即 array 是一个带有“x”项的 NSMutableArray。 案例一:

-(void)findItem:(Item*)item
{
  Item *temp;
  for (int i = 0 ;i<[array count];i++)
  {

    temp = [array objectAtIndex:i];
    if(item.tag == temp.tag)
      return;
  }


}

案例 2:

-(void)findItem:(Item*)item
{
  for(Item *temp in array)
  {
    if(item.tag == temp.tag)
      return;
  }
}

很明显,case2 更快,是吗?

【问题讨论】:

  • 我其实不知道如何计算运行时...
  • 之所以称为快速枚举是有原因的 - 请参阅:cocoawithlove.com/2008/05/fast-enumeration-clarifications.html
  • 那你应该先研究如何测量。然后,你的下一个研究应该是关于如何正确测量这样的东西。在您的情况下,简单地发布两个 sn-ps 并请求某人准确测量这两个代码片段是不合适的。
  • 您为什么认为案例 2 更快是显而易见的?
  • 除非您的数组有无数个项目,或者您调用该方法无数次,否则它通常无关紧要,除非您测量它并且它确实很重要。

标签: objective-c cocoa foundation


【解决方案1】:

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2014-10-28
  • 2019-06-26
  • 1970-01-01
  • 2012-07-21
  • 2021-10-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多