字典转模型速度比较

同样运行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 条评论
登录 后参与评论

相关文章

来自专栏数据结构与算法

洛谷P1456 Monkey King

题目描述 Once in a forest, there lived N aggressive monkeys. At the beginning, they ...

2644
来自专栏码匠的流水账

使用stanford nlp进行依存句法分析

本文利用stanford nlp的LexicalizedParser对中文句子进行了简单的依存关系分析,更深入的内容见下面的参考文档。

831
来自专栏逍遥剑客的游戏开发

灰度图像增强

2529
来自专栏ImportSource

自己动手写区块链-公钥和私钥

在区块链中,我们需要用到公钥和私钥。在之前的自己动手写区块链-发起一笔交易(Java版)中,我们就使用了公钥和私钥。其中公钥是钱包的地址,私钥则类似钱包的密码。

1246
来自专栏图形学与OpenGL

6.5编程实例-立方体透视投影

GLint winWidth = 600, winHeight = 600; //设置初始化窗口大小

841
来自专栏章鱼的慢慢技术路

OpenGL光照设置

1363
来自专栏清墨_iOS分享

OpenGLES绘制立体多边形加纹理

前面写了OpenGLES的入门篇,一些朋友觉得还不错,找到我问了一些知识,这次我有针对性的写下这篇文章,也为我OpenGLES进阶篇做个开始。 我已认证微信,感...

42212
来自专栏图形学与OpenGL

实验7 OpenGL光照

了解掌握OpenGL程序的光照与材质,能正确使用光源与材质函数设置所需的绘制效果。

581
来自专栏YoungGy

售电模拟应用简介

售电模拟,纸上得来终觉浅,绝知此事要躬行。 本文附上了售电模拟应用介绍及其核心算法,供大家共同学习。 应用功能 本应用地址为:售电模拟应用。 本应用目前针对...

2166
来自专栏申龙斌的程序人生

我生成的比特币地址竟然与别人的重合了

4166

扫码关注云+社区