Базовые данные против Sqlite и производительности - PullRequest
24 голосов
/ 25 июня 2009

Мне интересно, есть ли у кого-нибудь реальные цифры различий в производительности между старым приложением sqlite, которое было преобразовано в Core Data в 3.0 SDK.

Я подозреваю, что Core Data в любом случае просто использует sqlite и что это добавляет немного накладных расходов для удобства, но я подумал, что в любом случае спросит.

Ответы [ 2 ]

35 голосов
/ 25 июня 2009

Базовые данные сильно оптимизированы с точки зрения кэширования, отложенной загрузки и управления памятью.

Если вы используете его (с типом хранилища SQLite), особенно в сочетании с NSFetchedResultsController, вы должны получить более высокую производительность, чем вы могли бы получить с SQLite самостоятельно.

Apple работает над тем, чтобы ядро ​​данных хорошо работать на iPhone. Мое приложение переключилось с SQLite с FMDB на Core Data, и теперь оно быстрее и стабильнее с меньшим количеством кода.

2 голосов
/ 25 июня 2009

Core Data может использовать sqllite - это зависит от разработчика, чтобы настроить - так что ваш подозреваемый правильно. На телефоне я бы предложил sqllite - лучшая идея.

Я думаю, что одно из самых больших преимуществ, которое вы можете получить, используя Core Data, - это ленивая загрузка данных и сбой при экономии памяти. Поэтому вам также следует подумать о таких вещах, когда вы рассматриваете производительность, так как объем свободной памяти также влияет на производительность.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...