realm与coreData

realm

优点:

  • 键值观察机制
  • model 与table自动绑定
  • 有人维护,有问题能得到反馈
  • 兼容数据库版本升级
  • 支持oc swift混合编写

缺点:

  • pod下载包67M,动态库81M库有点大,整个ipa增大4M
  • 以下方法只能在事物中调用


    image.png
  • 主键与rowid 主键的内容可以自己指定,需要不唯一
    rowid是表自己生成的,自增长的index,外部不能修改,可以使用NSDate代替
  • 所有模型对象皆继承自RLMObject,对代码侵入较高

Realm与多线程

1、多个线程之间不能共享Realm实例,每个线程通过 [RLMRealm defaultRealm];获取自己的realm实例
2、所有从受realm管理的实例RLMRealm、RLMObject、RLMResult等不能跨线程传递,如需传递,查文档

CoreData

原理图如下:


image.png

cordData与Realm性能对比

//realm
/*单次连续写入10000条 23.8 s*/
/*事物单次写入10000条 451 ms*/
/*单次连续读取10000条 6.62ms*/
/*单次连续更新10000条 935 ms*/

//coreData
/*单次连续写入10000条 33.2 s*/
/*事物单次写入10000条 202 ms*/
/*单次连续读取10000条 18.1ms*/
/*单次连续更新10000条 339 ms*/

代码链接:

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容