iOS最佳性能持久数据解决方案?

Shu*_*yal 3 core-data persistent-storage realm fmdb ios

我正在构建一个基于healthKit的应用程序,我想知道如何最好地保存healthKit数据.

我目前的方法是获取数据并将其保存为自定义类对象的属性,然后将其作为NSData保存在核心数据中.

在性能方面,Realm比CoreData更快?

根据http://qiita.com/moriyaman/items/1a2916f4c2b79e934370,CoreData显然比FMDB慢,后者比Realm慢.即使考虑到故障和索引,有人可以确认这是否属实?

jps*_*sim 8

免责声明:我在Realm工作

在您提到的解决方案中,哪种持久性产品性能最佳的问题在很大程度上取决于数据的类型/数量/频率.由于Core Data和FMDB是SQLite上的层,因此它们的设计速度不能超过SQLite,但它们为许多用户提供了足够的便利.另一方面,Realm不是基于SQLite,而是基于专为现代智能手机设计的自定义数据库引擎.它旨在在强大的功能,简单的API之间取得更好的平衡,而不会增加大的性能.

您可以在Realm的发布博客文章中看到比较Realm/SQLite/Core Data/FMDB的公共基准:http://realm.io/news/introducing-realm#fast

最后,使用类似NSCoding的方法将HealthKit信息序列化到NSData中的方法将非常低​​效.无论您选择哪种持久性解决方案,通过使用内置于这些产品的序列化而不是存储已经序列化的数据blob,您将获得更好的服务.