托管对象上下文需要很长时间才能加载

时间:2012-08-16 20:30:51

标签: objective-c core-data

我正在测试我的应用程序中的性能,看看它的行为方式 里面有大量的数据。我的应用程序是基于核心数据的 在实体模式下使用数组控制器来获取数据。

我发现我的应用程序获取了所有托管对象 出现在核心数据中,所以我设置了数组的fetch谓词 启动时的控制器。这大大减少了 获取的对象。但问题是我的应用程序仍然需要很多 充满数据时开始的时间。

我在乐器中运行应用程序,核心数据取出乐器 确认这不是问题(我的应用只提取20-30 开始时的对象)。但是在Shark下运行我可以看到 启动后4-5秒,堆栈上的唯一调用是应用程序 托管对象上下文。所以我认为这与它有关 托管对象上下文与存储数据之间的交互,即使我 不要获取所有数据。如果我清空应用程序或留下少量数据 在它里面,它很快就开始了。

有人知道为什么会这样吗?我错过了一些明显的东西吗 如果我为什么要加载托管对象上下文呢? 只取几个对象?我一直认为核心数据可以很好地扩展 编程指南指出10.000个对象并不是核心 数据,但在我的应用程序中它有很大的不同,所以我想知道在哪里 我错了。

1 个答案:

答案 0 :(得分:0)

惊人!

在问这个问题后几秒钟我找到问题根并解决它!

仅适用于可能面临此问题的人:

您需要在对象控制器上为应用中使用的每个 NSArray控制器启用使用延迟提取来解决性能问题使用核心数据管理对象上下文

在这里你去! 应用程序启动的速度与点击它一样快!