iOS CoreData详解(四)Faulting and Uniquing

本文详细探讨了iOS中的CoreData两大核心概念——Faulting和Uniquing。Faulting作为一种内存管理机制,通过使用对象的占位符来减少内存消耗,而Uniquing则确保在同一个managed object context中,每个记录只对应一个managed object。文章介绍了Faulting的工作原理,包括Firing Faults的过程,以及如何进行性能优化,如Batch faulting和Pre-fetching。同时,Uniquing的作用在于避免相同记录的重复存储,保证数据一致性。
摘要由CSDN通过智能技术生成

原创blog,转载请注明出处
blog.csdn.net/hello_hwc
欢迎关注我的iOS SDK详解专栏
http://blog.csdn.net/column/details/huangwenchen-ios-sdk.html


前言,faulting 和 uniquing是理解CoreData的两个比较关键的概念,这里详细的讲解一下。
先简单看看二者的概念

  • faulting 是一种CoreData降低内存使用的机制,是惰性加载的一种。
  • Uniquing是辅助faulting的机制,它保证了在一个managed object context中只有一个managed object来表达一条记录

faulting 限制对象图的大小

一个fault在内存里就是一个对象的占位符,这个占位符代表的对象并没有完全取到内存里。分为两种:

  1. 一个managed object的fault就是相关类的对象,但是对象的持久化存储的属性没有被初始化
  2. 一个relationship 的fault表示对应的集合的实例。

这样的占位符的方式降低了内存使用,也不需要把fault对象相关的对象再取到内存里。
例如,取出如图的一个employee,那么员工的manager,department,reports默认都是fault来表示的

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值