2009-06-25 137 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是最好的主意。

我認爲使用核心數據可以獲得的最大好處之一是延遲加載數據和錯誤以節省內存。所以當你考慮性能時,你也需要考慮這樣的事情,因爲你擁有的可用內存量也會影響性能。