NSPersistentStoreCoordinator
有四种存储类型:NSSQLiteStoreType
、NSXMLStoreType
、NSBinaryStoreType
和NSInMemoryStoreType
。我知道 XML 存储可以方便地进行调试,或者当您需要易失性缓存时在内存中。
使用 Binary Store 类型的真正优势是什么?
NSPersistentStoreCoordinator
有四种存储类型:NSSQLiteStoreType
、NSXMLStoreType
、NSBinaryStoreType
和NSInMemoryStoreType
。我知道 XML 存储可以方便地进行调试,或者当您需要易失性缓存时在内存中。
使用 Binary Store 类型的真正优势是什么?
NSBinaryStoreType
将占用最少的磁盘空间,并且将加载最快的原子存储类型。
原子存储类型一次加载文档中的每个 Core Data 对象,因此一旦加载了文档,它就全部在内存中,并且在您点击save:
. 将NSSQLiteStoreType
占用类似二进制的磁盘空间,加载速度非常快,并且可以存在于任意有限的内存中,但是只要应用程序打开,文档文件就需要在磁盘上可用——它不能被删除或覆盖另一个应用程序,而您正在使用它,原子类型可以容忍。此处列出的 SQL 存储类型也有一些限制- 通常原子存储类型执行得更快并为您提供更多功能,但代价是内存占用量不断增加。
NSBinaryStoreType
绝不是最有效的原子存储类型,它不会以任何方式压缩。您可以编写自己的 gzip 压缩 XML 或 JSON 存储类型,这可能会占用比NSSQLiteStoreType
或更少的磁盘空间NSBinaryStoreType
,但会降低加载/保存速度。