Я использую Core Data для хранения списков данных. Итак, есть родительские объекты с любым количеством дочерних объектов. Core Data отлично справляется с сохранением низкого уровня использования памяти, пока я вставляю объекты и читаю, но когда я выполняю операцию удаления, память резко увеличивается.
Когда я удаляю родительский объект с ~ 5000 потомками, при каскадном удалении используется ~ 10 МБ. Это масштабируется линейно, так что один с 10 000 использует 20 МБ. Насколько я могу судить, он считывает в память весь граф объектов перед тем, как выполнить удаление. Я предполагаю, что это для обеспечения целостности и достоверности данных, но мне действительно нужно, чтобы использовать меньше памяти.
Кто-нибудь знает, как заставить Core Data использовать меньше памяти при каскадном удалении? Или я должен сделать каскад вручную, чтобы уменьшить использование памяти?