adi*_*dib 8 performance cocoa iterator objective-c fast-enumeration
有没有人知道是否NSFastEnumeration真的更快(如在运行时性能)比使用NSEnumerator或(对于数组)使用整数计数器并循环元素?
如果它确实更快,它如何达到这个速度?
或许"快速"实际上指的是编写迭代代码的速度更快?
提前致谢.
取决于容器,NSFastEnumeration至少与快速相同NSEnumerator但通常快得多,因为它涉及较少的方法调用.
不必为nextObject数组中的每个项目调用,而是使用NSFastEnumerator数组可以同时返回C数组中的一个对象块.迭代是c阵列的方式不必做大量的方法调用,其中每个查找并返回只有一个对象更快.
Fast enumeration并不比任何"for"循环快.从一般意义上讲,这是不可能的,因为基本循环已经尽可能优化.
相反,fast enumeration它比使用Objective-C方法调用从Objective-C对象获取每次迭代数据的"for"或"while"循环更快.
它通过批量获取数据来实现这一点,从而减少了在每次迭代时调用方法的开销.从循环内部删除方法调用也具有编译器优化优势.