2015-02-07 5 views
0

Я разрабатываю приложение iOS, которое будет собирать большое количество данных из нескольких источников (до десятков тысяч объектов, но простых объектов, без изображений) и сохранять их в моей собственной базе данных с использованием основных данных. Затем я анализирую эти данные и показываю результаты пользователю.Основные данные, какую модель параллелизма использовать?

Я хочу знать, есть ли какая-либо польза для использования основного узла Nsmanagedobjectcontext или если достаточно, чтобы я использовал частный.

Я также хочу знать, какая польза от наличия нескольких NSManagedObjectContext или если этого достаточно?

Модель параллелизма, которую я использую, в настоящее время имеет только одну приватную очередь nsmanagedobjectcontext, связанную с постоянным координатором магазина. Весь анализ данных выполняется в частной очереди, а затем я просто передаю анализируемые данные в основную очередь, чтобы отобразить их. На старых устройствах (iPhone 4) мое приложение иногда может вылетать, когда загружается слишком много данных (т. Е. Загружается из внешних баз данных), связано ли это с моим выбором модели параллелизма?

enter image description here

ответ

0

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

Управление памятью эффективно не связано и больше связано с тем, как много вещей происходит сразу (это звучит как один) и сколько объектов вы пытаетесь сохранить в основной памяти в любой момент (это звучит как многие) вместо того, чтобы вывести их из строя в хранилище данных. Это то, что вам нужно посмотреть/работать. Инструменты могут помочь вам увидеть, сколько объектов вы храните в памяти.

Как минимум позвонить refreshObject:mergeChanges: с помощью NO для слияния изменений, чтобы вывести из строя любые объекты, которые вы не используете.

Кроме того, помните, что вы работаете на мобильном устройстве и что обработка up to tens of thousands of objects - это работа, которая лучше обрабатывается сервером ...

Смежные вопросы