有谁知道NSFastEnumeration是否真的比使用NSEnumerator或(对于数组)使用整数计数器和遍历元素更快(比如运行时性能)?
如果它确实更快,它如何达到这个速度?
或者“快”实际上是指更快地编写迭代代码?
提前谢谢。
发布于 2011-12-09 08:45:52
根据容器的不同,NSFastEnumeration至少与NSEnumerator一样快,但通常要快得多,因为它所涉及的方法调用较少。
不必对数组中的每个项调用nextObject,使用NSFastEnumerator,数组可以立即返回C数组中的一个对象块。迭代C数组比执行许多方法调用要快得多,每个方法调用只查找并返回一个对象。
发布于 2011-12-09 08:47:47
Fast enumeration比任何"for“循环都快。在一般意义上,这是不可能的,因为基本循环已经尽可能地优化了。
相反,fast enumeration比使用object方法调用从object对象获取每次迭代中的数据的"for“或"while”循环更快。
它通过分批获取数据来实现这一点,减少了在每次迭代中调用方法的开销。从循环的内部删除方法调用也有编译器优化的好处。
https://stackoverflow.com/questions/8442956
复制相似问题