首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么NSFastEnumeration速度快?

为什么NSFastEnumeration速度快?
EN

Stack Overflow用户
提问于 2011-12-09 08:36:10
回答 2查看 1.4K关注 0票数 8

有谁知道NSFastEnumeration是否真的比使用NSEnumerator或(对于数组)使用整数计数器和遍历元素更快(比如运行时性能)?

如果它确实更快,它如何达到这个速度?

或者“快”实际上是指更快地编写迭代代码?

提前谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-12-09 08:45:52

根据容器的不同,NSFastEnumeration至少与NSEnumerator一样快,但通常要快得多,因为它所涉及的方法调用较少。

不必对数组中的每个项调用nextObject,使用NSFastEnumerator,数组可以立即返回C数组中的一个对象块。迭代C数组比执行许多方法调用要快得多,每个方法调用只查找并返回一个对象。

票数 6
EN

Stack Overflow用户

发布于 2011-12-09 08:47:47

Fast enumeration比任何"for“循环都快。在一般意义上,这是不可能的,因为基本循环已经尽可能地优化了。

相反,fast enumeration比使用object方法调用从object对象获取每次迭代中的数据的"for“或"while”循环更快。

它通过分批获取数据来实现这一点,减少了在每次迭代中调用方法的开销。从循环的内部删除方法调用也有编译器优化的好处。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8442956

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档