enumerateObjectsUsingBlock:比for-in循环更快吗?为什么?

pau*_*ler 1 objective-c nsfastenumeration

我正在阅读关于枚举NSHipster文章,该文章声称for-in循环比以下更快enumerateObjectsUsingBlock::

除非你在迭代时实际需要数字索引,否则使用for/in NSFastEnumeration循环几乎总是更快.

这个答案为该引用提供了一些反驳:

快速枚举需要从内部表示转换为快速枚举的表示.其中有开销.基于块的枚举允许集合类以最快遍历本机存储格式的速度枚举内容.

从内部表示转移到快速枚举的表示的翻译过程是什么?我知道那里有一些开销,但多少钱?

bbu*_*bum 7

真正的答案: 对于几乎任何现实世界的计划而言,没有区别.并且,直到你找到性能量化过程中的实际问题,不要担心.如果一个循环事项的执行速度,那么你的应用的总体架构是有可能的错误.

话虽如此,肯定有一些值得追求的学术好奇心.

看到:

Objective-C enumerateUsingBlock vs fast enumeration?