【问题标题】:Is enumerating/looping through an array of 200+ objects slow枚举/循环遍历 200 多个对象的数组很慢
【发布时间】:2012-10-20 01:35:04
【问题描述】:

在实际测试之前,我想知道这一点。

我有一个包含 210 个字典的 plist,在我的代码中,我通过该 plist 的内容初始化了一个 NSArray

在所有这些字典中,我需要枚举它们并检查一些东西:

for (NSDictionary *dict in largePlistArray) {

if ([[dict objectForKey: @"country"] isEqualToString: @"Cambodia"]) {

 NSLog (@"Random example!");

   }

 }

假设带有“柬埔寨”的字典是整个数组中的最后一个,枚举完整的 200 多个字典对象数组需要多长时间?

谢谢!

【问题讨论】:

  • 您的 plist 的大小是多少? 210 个实际的字典可能需要相当长的时间(从计算上讲)。
  • 210 个实际字典,每个字典 5 个字符串

标签: objective-c arrays nsarray nsdictionary enumeration


【解决方案1】:

最好的判断方法是尝试一下。然而,200 并没有给我留下特别大的印象,甚至是一个很小的数字。考虑一下:1GHz CPU 每秒运行十亿次基本操作。即使每次查找需要 100 次基本操作(实际上,所需的操作要少得多),对 200 项目的搜索也应该在非常短的时间内完成,大约为毫秒。

【讨论】:

  • 哇,我从来没想过,我以为 200 需要一秒钟或几秒钟!非常感谢!
  • 为了快速检查,您在循环前后放置了一个 NSLog。 NSLog 显示时间。要获得更好的测量结果,请执行相同的循环 10 次,然后 100 次,以此类推,直到速度变慢。
猜你喜欢
  • 1970-01-01
  • 2021-11-14
  • 1970-01-01
  • 2016-09-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-07-28
  • 2017-01-29
相关资源
最近更新 更多