Objective-c – Cocoa中的NSEnumerator性能与for循环

Objective-c – Cocoa中的NSEnumerator性能与for循环,第1张

概述我知道如果你有一个循环修改循环中项目的计数,使用集合中的NSEnumerator是确保你的代码爆炸的最好方法,但是我想了解NSEnumerator类之间的性能折衷只是一个老学校循环 在Objective-C 2.0中使用新的(… in …)语法通常是迭代集合的最快方式,因为它可以在堆栈上维护一个缓冲区,并在其中获取批处理. 使用NSEnumerator通常是最慢的方法,因为它经常复制被迭代的集合; 我知道如果你有一个循环修改循环中项目的计数,使用集合中的NSEnumerator是确保你的代码爆炸的最好方法,但是我想了解NSEnumerator类之间的性能折衷只是一个老学校循环解决方法 在Objective-C 2.0中使用新的(… in …)语法通常是迭代集合的最快方式,因为它可以在堆栈上维护一个缓冲区,并在其中获取批处理.

使用NSEnumerator通常是最慢的方法,因为它经常复制被迭代的集合;对于不可变的集合,这可以是便宜的(相当于-retain),但是对于可变集合,它可以导致创建不可变的副本.

执行自己的迭代 – 例如,使用 – [NSArray objectAtIndex:] – 通常会落在其中之间,因为您不会有潜在的复制开销,您也不会从底层集合中获取批次的对象.

(PS – 这个问题应该被标记为Objective-C,而不是C,因为NSEnumerator是一个Cocoa类,并且新的(… in …)语法特定于Objective-C.)

总结

以上是内存溢出为你收集整理的Objective-c – Cocoa中的NSEnumerator性能与for循环全部内容,希望文章能够帮你解决Objective-c – Cocoa中的NSEnumerator性能与for循环所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1031575.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-23
下一篇 2022-05-23

发表评论

登录后才能评论

评论列表(0条)

保存