美文网首页
面试准备第一篇

面试准备第一篇

作者: 凤毛麟角0712 | 来源:发表于2019-11-03 21:45 被阅读0次

打Log是我们debug时最简单朴素的方法,NSLog对于objc开发就像printf对于c一样重要。但在使用NSLog打印大量Log,尤其是在游戏开发时(如每一帧都打印数据),NSLog会明显的拖慢程序的运行速度(游戏帧速严重下滑)。本文探究了一下NSLog如此之慢的原因,并尝试使用lldb断点调试器替代NSLog进行debug log

测试下分别使用NSLog和printf打印10000次耗费的时间。CFAbsoluteTimeGetCurrent()函数可以打印出当前的时间戳,精度还是很高的,于是乎测试代码如下:

CFAbsoluteTimestartNSLog=CFAbsoluteTimeGetCurrent();

for(inti =0; i <10000; i++) {

NSLog(@"%d", i);

}

CFAbsoluteTimeendNSLog=CFAbsoluteTimeGetCurrent();

CFAbsoluteTimestartPrintf =CFAbsoluteTimeGetCurrent();

for(inti =0; i <10000; i++) {

printf("%d\n", i);

}

CFAbsoluteTimeendPrintf =CFAbsoluteTimeGetCurrent();

NSLog(@"NSLog time: %lf, printf time: %lf", endNSLog- startNSLog, endPrintf - startPrintf);

这个时间和机器肯定有关系,只看它们的差别就好。为了全面性,尝试了三种平台:

NSLogtime:4.985445, printf time:0.084193// mac

NSLogtime:5.562460, printf time:0.019408// 模拟器

NSLogtime:10.471490, printf time:0.090503// 真机调试(iphone5)

可以发现,在mac上(模拟器其实也算是mac吧)速度差别达到了60倍左右,而真机调试甚至达到了离谱的100多倍。 

总结

NSLog耗费比较大的资源

NSLog被设计为error log,是ASL的高层封装

在项目中避免提交commit自己的Debug log,release版本更要注意去除NSLog,可以使用自建的log系统或好用的log系统来替代NSLog

debug不应只局限于log满天飞,lldb断点调试是一个优秀的debug方法,需要再深入研究下

相关文章

  • 大学生求职面试篇:面试准备之简历的准备

    面试准备部分讲分四篇文章写完,请持续关注! 第一篇:面试准备1——关于简历方面的准备 第二篇:面试准备2——关于面...

  • 大学生求职面试篇:面试准备的一些细节问题

    面试准备部分分5篇文章写完,这是本系列最后一篇! 第一篇:面试准备1——关于简历方面的准备 第二篇:面试准备2——...

  • 大学生求职面试篇:面试准备之了解公司

    面试准备部分共有四篇文章,这是第二篇,请持续关注! 第一篇:面试准备1——关于简历方面的准备 第二篇:面试准备2—...

  • 面试准备第一篇

    打Log是我们debug时最简单朴素的方法,NSLog对于objc开发就像printf对于c一样重要。但在使用NS...

  • 系统设计:分布式调度器(KISS面试系列)

    这是系统面试准备系列的第一篇博客。我的目标是设计出KISS(keep it simple stupid)系统,可以...

  • 面试准备

    面试官您好,我叫 我毕设内容是设计和开发一个基于RFID自动识别技术的物流跟踪系统,其中包括开发一个中间件,用于提...

  • 面试准备

    1.StringBuffer 实现远离 java 常用集合的数据结构:hashmap linklist array...

  • 面试准备

    准备:简历编写和面试前准备 一般来说,跳槽找工作要经历投递简历、准备面试、面试和谈 offer 四个阶段。其中面试...

  • 面试准备

    1、了解公司,看公司网站、 了解公司产品、服务特色,再看看公司管理的背景、企业文化等方面,可能的话去翻翻 企业年报...

  • 面试准备

    已经过了一年没有工作,以前的工作内容都模糊了,于是进入了以前工作的网站再次观察浏览好像又找回了一些东西,感觉上没有...

网友评论

      本文标题:面试准备第一篇

      本文链接:https://www.haomeiwen.com/subject/ixvlbctx.html