gpt4 book ai didi

cocoa - 核心数据和性能不佳

转载 作者:行者123 更新时间:2023-12-03 16:21:47 31 4
gpt4 key购买 nike

我已经研究这个问题有一段时间了,我愿意接受任何最佳实践/建议。

示例

因此,我创建了一个示例 Core Data 应用程序。该应用程序基本上是 AddressBook 应用程序的模仿。我有以下实体:组、联系人、地址、电话、电子邮件、网页、日期。

正如您可能猜测的那样,一个组可以有多个联系人,一个联系人可以属于多个组。联系人还可以有多个地址、电话、电子邮件、网页和日期。

我基本上将大约 600 个联系人从 AddressBook 导入到此应用程序中。用户界面相对简单...左侧有一个组/类别列表,右侧有一个 NSCollectionView 或 NSTableView,根据所选组显示联系人列表。( Collection View 或 TableView ...正如我添加的那样显示任一 View 的能力,这两个 View 都绑定(bind)到 NSArrayController)

我通过代码而不是 Interface Builder 引入的组元素,因为我想使用类似侧边栏的东西,而且这样做要容易得多。

问题

其中一个类别包含所有联系人,而另一个类别仅包含 2 个联系人。当我选择包含所有联系人的类别时,信息填充集合或表格 View 需要 8 到 10 秒的时间。然而,在 AddressBook 本身中执行相同的操作非常快,几乎是即时的。我正在使用 SQLLite 存储类型,并尝试使用多种不同的方法,包括尝试通过 Instruments 诊断问题,但没有任何效果。

我尝试将谓词设置为联系人数组 Controller 的 defaultFetchPredicate,而不是设置过滤器谓词,但这不起作用。

我尝试了预取和错误,但我不确定我是否做得正确,并且不确定如果 Interface Builder 处理联系人的 NSArrayController 如何完成它。

另一个例子

我还尝试下载一个示例 Core Data 应用程序...虽然它的关系模型比我所做的更简单(基本上一个 Molecule 有 Atom 对象,一个 Atom 对象有 Element 对象),我插入了 65,000 条记录,它表现得像一个魅力。

问题

我基本上碰壁了,我想知道是否有其他人知道为什么会发生这种情况以及解决/克服/避免此类问题的最佳方法?

谢谢!

最佳答案

事实证明,实际上是 NSCollectionView 拖慢了速度。我猜想 View 的创建和操作 x Collection View View 的数量会增加大量的开销。本来可以使用 IKImageBrowserView,但这不是我想要的。

我最终更改了应用程序布局来解决此问题。

谢谢大家!

关于cocoa - 核心数据和性能不佳,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2991157/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com