字典转模型速度比较

同样运行100000次后的结果,哈哈不是说mj就不行,mj代码量和兼容程度是yy不能比的

2018-06-09 16:57:08.757885+0800 04-YY和MJ转模型的对比[16298:12944014] YY - 0.19
2018-06-09 16:57:13.636412+0800 04-YY和MJ转模型的对比[16298:12944014] MJ - 4.88
2018-06-09 16:57:13.734706+0800 04-YY和MJ转模型的对比[16298:12944014] 系统kvo - 0.10

测试代码

#import "ViewController.h"

@interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
  
    
    BookDTO *bDto1 = [[BookDTO alloc] init];
    bDto1.bookName = @"JinPingMei";
    
    BookDTO *bDto2 = [[BookDTO alloc] init];
    bDto2.bookName = @"ShuiHu";
    
    BookDTO *bDto3 = [[BookDTO alloc] init];
    bDto3.bookName = @"XiYouJi";
    
    
    NSDictionary *dic = @{
                          @"name" : @"mawenxing",
                          @"age" : @18,
                          @"book" :bDto1,
                          @"books" :
                          @[bDto2,bDto3]
                          };
    [self test1Time:dic];
    [self test2Time:dic];
    [self test3Time:dic];
    
    
}

/** 测试`YY`转模型100000次 */
-(void)test1Time:(NSDictionary *)dic{
    
    
    CFAbsoluteTime start = CFAbsoluteTimeGetCurrent();
    
    for (int i = 0; i < 100000; ++i) {
        
         UserDTO *dto = [UserDTO yy_modelWithDictionary:dic];
    }
    
    NSLog(@"YY - %.2f",CFAbsoluteTimeGetCurrent()-start);
    
}

/** 测试`MJ`转模型100000次 */
-(void)test2Time:(NSDictionary *)dic{


    CFAbsoluteTime start = CFAbsoluteTimeGetCurrent();
    
    for (int i = 0; i < 100000; ++i) {
        
        UserDTO *dto = [UserDTO mj_objectWithKeyValues:dic];

    }
    
    NSLog(@"MJ - %.2f",CFAbsoluteTimeGetCurrent()-start);
    

}
/** 测试系统kvo转模型100000次 */
- (void)test3Time:(NSDictionary *)dic {
    CFAbsoluteTime start = CFAbsoluteTimeGetCurrent();
    for (int i = 0; i < 100000; i++) {
        UserDTO *dto = [UserDTO userDtoWithDict:dic];
    }
    
    NSLog(@"系统kvo - %.2f", CFAbsoluteTimeGetCurrent()-start);
}




@end

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏iOS开发攻城狮的集散地

UIActivityViewController系统原生分享-仿简书分享

3188
来自专栏雨尘分享

ReactiveCocoa 入门知识——归总篇

1974
来自专栏美团技术团队

ReactiveCocoa中潜在的内存泄漏及解决方案

ReactiveCocoa是GitHub开源的一个函数响应式编程框架,目前在美团App中大量使用。用过它的人都知道很好用,也确实为我们的生活带来了很多便利,特别...

4908
来自专栏慎独

UIViewController生命周期分析

1554
来自专栏哈雷彗星撞地球

iOS 中如何判断当前是2G/3G/4G/5G/WiFi

5G 什么的,还得等苹果API更新啊,不过将来还是这个处理过程就是了。 关于判断当前的网络环境是2G/3G/4G,这个问题以前经常看到,最近在一工程里看到了如...

1322
来自专栏iOS122-移动混合开发研究院

RDVTabBarController--可自由定制的iOS底部导航控件

RDVTabBarController:一个十分完善的tabBarController,可以自定义角标个数,爽的停不下来。 RDVTabBarControlle...

21110
来自专栏iOS 开发

UIButton扩展Block点击事件

1703
来自专栏机器学习入门

LWC 59:729. My Calendar I

LWC 59:729. My Calendar I 传送门:729. My Calendar I Problem: Implement a MyCalenda...

2006
来自专栏陈满iOS

[iOS源码笔记]·第三方网络图片处理框架:SDWebImage网络下载及缓存管理策略

typedef void(^SDExternalCompletionBlock)(UIImage * _Nullable image, NSError * _N...

731
来自专栏王大锤

iOS 自己封装的网络请求,json解析的类

3709

扫码关注云+社区