我正在使用 Core Data 来存储数据列表。因此,存在具有任意数量子对象的父对象。在我插入对象和读取时,Core Data 很好地保持了较低的内存使用率,但当我执行删除操作时,内存使用量激增。
当我删除具有约 5000 个子对象的父对象时,级联删除使用约 10MB。这是线性扩展的,因此 10,000 个使用 20MB。据我所知,它在删除之前将整个对象图读入内存。我猜这是为了确保数据的完整性和有效性,但我确实需要它来使用更少的内存。
有谁知道如何让 Core Data 在级联删除时使用更少的内存?还是我必须手动执行级联以减少内存使用量?
最佳答案
如果你想降低高水位线,现在你必须手动级联。两点:
- 你应该file a bug with Apple在级联删除时请求对故障行为进行更多控制。
- 您是否已确认内存的这种临时增长确实给您的应用程序带来了麻烦?尝试减少内存使用量当然是值得的,但是手动删除可能意味着您将无法在未来的更新中获得性能增强,除非您再次更改代码。
关于iphone - 级联删除大对象图时如何减少核心数据的内存使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1137651/