Базовые данные, MOC и многопоточность - PullRequest
0 голосов
/ 20 июля 2010

Концептуальный вопрос:

У меня есть данные, хранимые иерархически через Core Data SQLite для приложения для iPhone.Я хочу, чтобы и рисовать И выполнять вычисления, основанные на свойствах каждого объекта во всей иерархической структуре объектов.Как задачи рисования, так и вычисления имеют одинаковые свойства.Достаточно просто.Однако я ожидаю, что выполнение как рисования, так и расчета в главном потоке вызовет некоторые проблемы с отзывчивостью пользовательского интерфейса.Использование двух MOC для доступа к одним и тем же данным, но в разных потоках, звучит немного глупо для меня при первом проходе (обход дерева дважды, один раз в каждом потоке).Честно говоря, я не уверен, что многопоточность слишком сильно поможет.

Кто-нибудь перечислит общие параметры для достижения разумной производительности приложения в этом конкретном случае?

Спасибо.

1 Ответ

3 голосов
/ 20 июля 2010

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

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