2009-06-25 103 views
23

我在想,如果任何人在3.0 SDK中已转换为核心数据的旧sqlite应用程序之间的性能差异是否有任何真实世界的数字。核心数据vs Sqlite和性能

我怀疑Core Data在使用sqlite的时候总是使用sqlite,而且它为便利性的成本增加了一些开销,但我想我会问。

+3

有没有必要“怀疑”这一点。在文档中明确指出,您可以选择SQLite存储。 – 2009-06-26 09:46:23

回答

34

核心数据在高速缓存,延迟加载和内存管理方面进行了大量优化。

如果您使用它(使用SQLite存储类型),特别是与NSFetchedResultsController结合使用,您应该获得比使用SQLite更好的性能。

苹果已经努力使Core Data在iPhone上表现良好。我的应用程序从SQLite w/FMDB切换到核心数据,现在更快,更稳定,代码更少。

+0

我对Core Data会给SQLite增加额外开销有一个共同的印象,但我被证明你所描述的一切都是真实的。事实上,我相信iPhone的地址簿现在基于3.0版的Core Data。这是一个非常强大的信心投票。 – 2009-06-26 00:46:39

2

核心数据可以使用sqllite - 由开发人员配置 - 让您的嫌疑人正确。在电话中,我会建议sqllite是最好的主意。

我认为使用核心数据可以获得的最大好处之一是延迟加载数据和错误以节省内存。所以当你考虑性能时,你也需要考虑这样的事情,因为你拥有的可用内存量也会影响性能。