NSBinaryStoreType有哪些优势?

9

NSPersistentStoreCoordinator有四种存储类型:NSSQLiteStoreTypeNSXMLStoreTypeNSBinaryStoreTypeNSInMemoryStoreType。我知道在调试时使用XML存储可能很方便,或者在需要易失性缓存时使用内存中的存储。

那么使用二进制存储类型的真正优势是什么呢?

1个回答

13

NSBinaryStoreType是原子存储类型中磁盘占用最少、加载最快的。

原子存储类型会一次性加载文档中的每个Core Data对象,因此一旦文档被加载,所有对象都在内存中,直到执行save:操作才会再次访问磁盘。 NSSQLiteStoreType类似于二进制文件并且加载非常快,可以在任意有限的内存中运行,但是只要应用程序打开了文档文件,该文件就必须在磁盘上可用,否则其他应用程序将无法覆盖或删除它,这是原子存储类型所能容忍的。 此外,SQL存储类型存在一些限制,具体请参见此处。 通常情况下,虽然原子存储类型牺牲了递增的内存占用,但其性能更高,可提供更多功能的优势。

NSBinaryStoreType并不是最有效的原子存储类型,因为它没有进行任何压缩。您可以编写自己的gzipped XML或JSON存储类型,这种类型可能比NSSQLiteStoreTypeNSBinaryStoreType占用更少的磁盘空间,但会牺牲加载/保存速度。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接