内存管理导致的崩溃问题(使用Core Data)

时间:2010-11-09 07:30:21

标签: iphone core-data memory-management nsoperation

我正在使用核心数据。从那里我正在检索10000多个数据

使用NSOperation,我在UITableView上显示大量数据。

但正如我在XCode Instruments中看到的那样,我的内存使用量不断增加

这就是原因,设备中的崩溃活动不在模拟器中

有人想对此发表评论吗?

2 个答案:

答案 0 :(得分:1)

不要一次检索10000个对象。

使用NSAutoreleasePool并以一致的间隔(通过测试确定的间隔)冲洗池。

每N次迭代:

  1. 保存您的上下文
  2. 重置您的上下文
  3. 排水池
  4. 这将在导入过程中降低内存使用率。

答案 1 :(得分:0)

模拟器具有几乎无限的内存,因为它使用Mac的内存,因此甚至可以交换到硬盘驱动器。另一方面,iDevice的内存非常有限。

根据你的描述,你不清楚你做错了什么。由您来分析它,使用仪器,您已经处于良好的状态。使用Instruments的“快照分析”来查找应用程序泄漏内存的位置。最近bbum写了一篇关于如何使用它的好文章:http://www.friday.com/bbum/2010/10/17/when-is-a-leak-not-a-leak-using-heapshot-analysis-to-find-undesirable-memory-growth/。 Apple的工程师还有一个关于使用值得观看的乐器的WWDC的精彩视频:http://developer.apple.com/videos/wwdc/2010/