Базовые данные против Sqlite и производительности
Мне интересно, есть ли у кого-нибудь реальные цифры различий в производительности между старым приложением sqlite, которое было преобразовано в Core Data в 3.0 SDK.
Я подозреваю, что Core Data в любом случае просто использует sqlite и что это добавляет немного накладных расходов для удобства, но я решил спросить в любом случае.
2 ответа
Базовые данные сильно оптимизированы с точки зрения кэширования, отложенной загрузки и управления памятью.
Если вы используете его (с типом хранилища SQLite), особенно в сочетании с NSFetchedResultsController, вы должны получить лучшую производительность, чем вы могли бы получить с SQLite самостоятельно.
Apple, работает над тем, чтобы ядро Data хорошо выполнять на iPhone. Мое приложение переключилось с SQLite с FMDB на Core Data, и теперь оно быстрее и стабильнее с меньшим количеством кода.
Базовые данные могут использовать sqllite - это зависит от разработчика, чтобы настроить - так что ваш подозреваемый правильно. На телефоне я бы предложил sqllite - лучшая идея.
Я думаю, что одно из самых больших преимуществ, которые вы можете получить, используя Core Data, - это ленивая загрузка данных и сбой в экономии памяти. Поэтому вы должны также думать о таких вещах, когда вы рассматриваете производительность, так как объем свободной памяти также влияет на производительность.