iphone - 级联删除大对象图时如何减少核心数据的内存使用?

标签 iphone objective-c performance memory-management core-data

我正在使用 Core Data 来存储数据列表。因此,存在具有任意数量子对象的父对象。在我插入对象和读取时,Core Data 很好地保持了较低的内存使用率,但当我执行删除操作时,内存使用量激增。

当我删除具有约 5000 个子对象的父对象时,级联删除使用约 10MB。这是线性扩展的,因此 10,000 个使用 20MB。据我所知,它在删除之前将整个对象图读入内存。我猜这是为了确保数据的完整性和有效性,但我确实需要它来使用更少的内存。

有谁知道如何让 Core Data 在级联删除时使用更少的内存?还是我必须手动执行级联以减少内存使用量?

最佳答案

如果你想降低高水位线,现在你必须手动级联。两点:

  1. 你应该file a bug with Apple在级联删除时请求对故障行为进行更多控制。
  2. 您是否已确认内存的这种临时增长确实给您的应用程序带来了麻烦?尝试减少内存使用量当然是值得的,但是手动删除可能意味着您将无法在未来的更新中获得性能增强,除非您再次更改代码。

关于iphone - 级联删除大对象图时如何减少核心数据的内存使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1137651/

相关文章:

performance - WebSockets、UDP 和基准

performance - 使用three.js和canvas渲染器渲染大量彩色粒子

iphone - 为 iPhone 导航栏着色时,颜色和按钮会改变行为

c++ - XCode 导入语句和子目录

iphone - Facebook 评论部分继续在 UIWebView 上加载

iphone - 在 Objective-C 中编程 Stephen Kochan。第 21 章,练习 21.2

ios - 如何在 Xcode 中创建旧的 Storyboard?

php - 提高数据库查询执行时间的措施

iphone - UILabel 中实际上可以动画化的是什么?

iphone - 是否可以选择在 PayPal 的 iPhone 框架中启用定期付款?