A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

© sabjiang 中级黑马   /  2014-4-26 23:08  /  2241 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 sabjiang 于 2014-4-29 12:09 编辑
  1. CFAbsoluteTime startNSLog=CFAbsoluteTimeGetCurrent();
  2.     for (int i=0; i<10000; i++) {
  3.         NSLog(@"%d",i);
  4.     }
  5.     CFAbsoluteTime endNSLog=CFAbsoluteTimeGetCurrent();
  6.    
  7.     CFAbsoluteTime startPrinft=CFAbsoluteTimeGetCurrent();
  8.     for (int i=0; i<10000; i++) {
  9.         printf("%d\n",i);
  10.     }
  11.     CFAbsoluteTime endPrintf=CFAbsoluteTimeGetCurrent();
  12.     NSLog(@"NSLog time:%lf, printf time :%lf",endNSLog-startNSLog,endPrintf-startPrinft);
复制代码


用NSLog和printf分别答应10000条数据,统计两者的耗时,如下:
NSLog time:2.005033, printf time :0.055691
请教大神分析下两者的区别,反正NSLog应该不是printf的封装,NSLog每次还会打印出系统自带的一些东东,能去掉吗

评分

参与人数 1技术分 +1 收起 理由
jing迪 + 1

查看全部评分

3 个回复

倒序浏览
NSLog比printf慢是应当的,因为NSLog不仅要在终端上显示打印信息还要将打印信息写进system.log日志中去,所以肯定会比只做打印输出的printf慢。
回复 使用道具 举报
NSLog比 printf 的功能多嘛。觉得,出了楼上说的日志功能外,应该还有。判断类,然后输出类的功能,肯定会加更加多的代码,执行的代码多。效率当然就低了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马