• 在iOS开发中,目前市场上有三种主流的数据库操作

    • FMDB:使用最多
    • realm:使用较多
    • CoreData:目前使用较少
  • 关于一种数据库技术的选择,无非就两个衡量条件

    • 使用是否方便
    • 操作大量数据时,是否耗时耗性能
  • 接下来我们测试一下iOS10苹果对CoreData的改进有多么的给力!

  • 传统的在主线程操作CoreData插入十万行数据

    • 足足等了12s多

- (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event
{//1.保存耗时操作之前的时间NSDate *date = [NSDate date];//2.添加10万行数据for(int i=0;i<100000;i++){//创建CoreData模型,注意这里的参数是默认的主线程管理对象上下文Person *person = [NSEntityDescription insertNewObjectForEntityForName:@"Person" inManagedObjectContext:kHMCoreDataManager.persistentContainer.viewContext];//赋值person.name = @"坤哥";person.age = 18;}//4.开时保存到数据库[kHMCoreDataManager save];//5.获取耗时操作之后的时间NSDate *date1 = [NSDate date];//6.输出两个耗时操作的时间差NSLog(@"%f",[date1 timeIntervalSinceDate:date]);}

  • 使用NSPersistentContainer的多线程操作数据库插入十万行数据

    • 只需要0.18s

- (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event
{//1.保存耗时操作之前的时间NSDate *date = [NSDate date];//2.创建一个新的多线程管理对象上下文NSManagedObjectContext *context1 = [kHMCoreDataManager.persistentContainer newBackgroundContext];//3.添加10万行数据for(int i=0;i<100000;i++){//创建CoreData模型,注意这里的参数上下文是基于多线程的Person *person = [NSEntityDescription insertNewObjectForEntityForName:@"Person" inManagedObjectContext:context1];//赋值person.name = @"坤哥";person.age = 18;}//4.开启异步多线程保存到数据库[kHMCoreDataManager.persistentContainer performBackgroundTask:^(NSManagedObjectContext * context) {//这里不能使用block中的context,而必须要使用上面的context1(在哪一个上下文中添加,就在哪一个上下文中保存)[context1 save:nil];}];//5.获取耗时操作之后的时间NSDate *date1 = [NSDate date];//6.输出两个耗时操作的时间差NSLog(@"%f",[date1 timeIntervalSinceDate:date]);}

  • 从上面的比较可以看出,iOS10之后新增的NSPersistentContainer使用多线程操作数据库的效率比主线程效率高了差不多五十倍!!!

13-NSPersistentContainer性能比较相关推荐

  1. 荣耀Magic4核心配置曝光:最强驯龙高手 性能远超iPhone 13 Pro

    不久前,荣耀官方曾宣布,将于3月17日晚19:30召开新品发布会,届时将正式推出荣耀新一代智慧旗舰--荣耀Magic4系列.随着发布时间的日益临近,官方关于该机的预热也更加密集.现在有最新消息,近日荣 ...

  2. Redis 性能优化 13 条军规

    前言 Redis作为高性能的内存数据库,在大数据量的情况下也会遇到性能瓶颈,日常开发中只有时刻谨记优化铁则,才能使得Redis性能发挥到极致. 本文将会介绍十三条性能优化军规,开发过程中只要按照执行, ...

  3. 首长,Redis性能优化十三条军规立好了,请过目~

    点击上方蓝色"方志朋",选择"设为星标" 回复"666"获取独家整理的学习资料! 前言 Redis作为高性能的内存数据库,在大数据量的情况下 ...

  4. 中国AI服务器,刷新全球18项性能基准测试纪录

    允中 发自 凹非寺 量子位 编辑 | 公众号 QbitAI 美国东部时间10月21日,全球倍受瞩目的权威AI基准测试MLPerf公布今年的推理测试榜单,浪潮AI服务器NF5488A5一举创造18项性能 ...

  5. 摄像头预览左右翻转_轻薄翻转触控本里的高性能机型:惠普ENVY x360 13评测

    自从今年3月末AMD锐龙4000系列处理器正式登陆移动平台以来,目前已有多款机型上市,并涌现出了不少高热度.高性价比的机型.我们也体验测试了其中数款机型,总体上给用户的印象是是价格香.性能强.而今天牛 ...

  6. 全球权威MLPerf基准测试再发榜,浪潮AI服务器创18项AI性能纪录

    美国东部时间10月21日,全球备受瞩目的权威AI基准测试MLPerf公布今年的推理测试榜单,浪潮AI服务器NF5488A5一举创造18项性能纪录,在数据中心AI推理性能上遥遥领先其他厂商产品. MLP ...

  7. iphone6s发布会_iPhone 6S/SE升级iOS 13性能测试:App启动速度比iOS 12.4.1慢

    在发布会上,苹果表示iOS 13的性能得到了非常大的提升,App启动速度提升高达2倍:面容ID解锁的速度提升高达30%.其中,面容ID面向的对象相对较窄,而App启动速度则是所有iOS用户都关心的.那 ...

  8. 荣耀Magic4性能体验超苹果再次实锤!非官方游戏性能对比出炉

    每年3月,国内手机市场一般会迎来头部品牌贴身互博的激烈盛况,这也是因为各品牌会在此时相继推出全新顶级旗舰.3月11日,荣耀CEO赵明在微博透露旗下即将于3月17日正式发布的最新顶级旗舰荣耀Magic4 ...

  9. 关于Go1.14,你一定想知道的性能提升与新特性

    作者:绘你一世倾城 链接:https://juejin.im/post/5e3f9990e51d4526cc3b1672 来源:掘金 著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处 ...

  10. 鲁大师12月新机性能/流畅榜:小米系包揽性能榜前三,流畅榜上限再突破!

    [鲁大师12月安卓新机性能榜] 随着X90 Pro+ 12月2日正式宣布搭载骁龙8 Gen2,年末旗舰大战正式打响,一众8 Gen2机器的发售也让这个月热闹非凡.新机性能榜TOP5如下:NO.1: # ...

最新文章

  1. Python裁剪图片(Crop an Image)
  2. 以太坊源码学习 -- EVM
  3. 03_dbcp数据源依赖jar包,DBCP中API介绍,不同过dbcp方式使用dbcp数据库连接池,通过配置文件使用dbcp数据库连接池
  4. 如何删除数据库中的所有用户表(表与表之间有外键关系)
  5. Java 嵌套类和内部类演示样例lt;二gt;
  6. Python基础闯关失败总结
  7. leetcode9. 回文数
  8. 彩色烟雾一直是许多摄影师和摄影爱好者的首选武器
  9. 杂志html转换服务平台,Verypdf HTML Converter(网页转换器)
  10. 5 大场景深度探讨何为 Serverless 架构模式?
  11. java 双向链表_数据结构-链表、栈和队列
  12. Anaconda快速安装pytorch几分钟离线快速安装一定可行 下载缓慢conda install offline pytorch cudatoolkit slowly
  13. Python的起源与Python之父
  14. 图形学笔记(四) 数学变换
  15. Unity 2D游戏:代码控制精灵图片切换做出帧动画效果
  16. linux命令:cp和scp
  17. 自动化学报latex模板下载
  18. RuntimeError: No such operator aten::cudnn_convolution_backward_weight
  19. js中条件三目运算符?:
  20. Unity EvenTrigerer UI交互组件

热门文章

  1. 用webstorm做一个跑马灯_用Workman做一个聊天室
  2. ceph与hdfs的比较_分布式存储中HDFS与Ceph两者的区别是什么,各有什么优势?
  3. 七十一、Python | Leetcode字符串系列(上篇)
  4. 十一、练习:爬取图虫网付费图片
  5. js调试微博登录案例
  6. 机器学习中的逻辑回归
  7. TensorBoard(二)
  8. 三十一、Scrapy爬取百度图片
  9. 简单php不用mysql_简单的PHP / MySQL不工作
  10. 预训练永不止步,游戏问答语言模型实操