Bry*_*yan 2 macos cocoa core-data objective-c
我想知道是否有任何一个 NSManagedObject 子类应该具有的最大属性数的指南。我已经仔细阅读了 Apple 的文档,但没有提到性能开始受到侵蚀的限制。
我确实在 Xcode 中看到一个编译器标志选项,当 NSManagedObject 具有超过 100 个属性时会发出警告,但我找不到任何关于它的文档。这里有人有使用具有大量属性的 Core Data MO 的经验吗?
我专注于性能,而不是内存使用。在我的应用程序中,只有大约 10-20 个具有大量属性的 MO 实例,而且我在 OS X 而不是 iOS 上开发,因此内存使用不是一个因素。但是,如果性能(尤其是出现故障时)在某一点开始下降,我想现在就知道,以便我可以相应地更改数据模型的结构。
谢谢!
如果您使用 SQLite 后备存储,每个属性都会映射到一个表 column。SQLite 对您可以使用的列数有严格限制(默认情况下为 2000,尽管它是编译时可配置的,因此 Apple 的实现可能会有所不同),并且他们建议不要使用超过 100 的. 这很可能就是 Xcode 警告将其阈值设置为 100 的原因。
关于限制的相同链接页面还指出,有一些 O(N^2) 算法,其中 N 是列数,因此,听起来您通常应该避免使用高数字。
对于其他文件格式,我不知道有什么限制或建议。但我期待类似的事情 - 即那里可能有一些 O(N^2) 或更糟的算法,所以你想避免成为一个不常见的边缘情况。
归档时间: |
|
查看次数: |
696 次 |
最近记录: |