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,但会降低加载/保存速度。