Я работаю над приложением, поддерживаемым Core Data. Прямо сейчас я сохраняю контекст объекта как и когда добавляю или удаляю объект в контекст и из него. Боюсь, это повлияет на производительность, поэтому я думал о том, чтобы отложить сохранение. Фактически, я мог бы отложить все это до тех пор, пока приложение не закончится. Слишком рискованно сохранять данные только тогда, когда приложение вот-вот закрывается? Как часто я должен вызывать сохранение в контексте объекта?
Я думал о том, что отдельный поток обрабатывает сохранение: он будет ждать семафора. Каждый раз, когда любая часть приложения вызывает метод helper/util для сохранения основных данных, он уменьшает семафор. Когда он сбрасывается до нуля, "save thread" будет делать однократное сохранение, и он увеличивает семафор до, скажем, 5, а затем снова спящий.
Хорошая рекомендация? Спасибо!