0

Я пытаюсь сделать мой алгоритм быстрее, поскольку я вижу длительное время загрузки. Мое приложение загружает тысячи объектов из внешней базы данных, а затем сохраняет их на устройстве. Я запускал профилировщик времени с помощью iPod touch, и я видел, что 17 секунд/26% времени загрузки тратится на выполнение функции сохранения: NSManagedObjectContexts.Уменьшить время сохранения NSManagedObjectContect

Я использую один приватный контекстный контекст и один постоянный координатор магазина.

Что влияет на экономию времени? Если я сохраню 1/10 данных 10 раз вместо всех данных один раз, какой из них быстрее? Что я могу попытаться оптимизировать потраченное время?

enter image description here

+0

Почему бы вам не попробовать и не посмотреть? – Paulw11

+0

Опишите, как ваш код работает более подробно. Например, вы называете 'save': один раз или много раз? –

+0

Я сохраняю несколько раз. Я беру несколько партий данных, и после каждого из них я выполняю сохранение. – Nilsymbol

ответ

0

Вы на правильном пути. Лучший рычаг, который я нашел для оптимизации времени сохранения данных Core, действительно равен , находя правильный размер партии.

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

Другие стратегии включают использование пула (ов) @autorelease, который оптимизирует использование памяти и может улучшить производительность.

Дайте нам знать ваши результаты!

+0

Я закончил делать некоторые другие умные изменения в моей базе данных, поэтому я больше не сохраняю столько объектов, но я принимаю ваш ответ, поскольку это, вероятно, помогло бы – Nilsymbol