NSLog对程序性能的影响

On 07/02/2011, in Development, iOS Dev, Mac Dev, by ultragtx

NSLog,既可以像printf那样方便地格式化输出,同时还能输出时间以及进程ID等信息,可谓调试利器.但是其实NSLog对程序性能也有不小的影响,在执行次数比较少的情况下可能看不出来什么,当短时间大量执行的时候就会对程序执行效率产生可观的影响.

我遇到的一种情况就是我在一个UIScrollView子类的layoutSubviews方法中输出了很多次log,而这个layoutSubviews本身又有相对繁重的工作要做,由于每次拖动这个UIScrollView都要调用很多次layoutSubviews,因此程序实际运行起来拖动体验就非常差,卡顿现象严重,多次测试发现注释掉所有的NSLog后拖动就变得正常了.

综上,当你疑惑是什么导致了你的程序运行效率很差的时候不妨注释掉那些NSLog试试,你的问题也许就迎刃而解了.

–以上–

Tagged with:  

5 Responses to NSLog对程序性能的影响

  1. foobra说道:

    可以包一个debuglog之类的函数,然后放到#ifdef DEBUG下,就不会太影响了

    • G说道:

      这个的确是挺好的方法,但我写的只是对一个模块测试,还没合并到主程序中,就没讲究那么多,而且我那个layoutSubviews里其实log不超过10条,注释一遍也不费劲.

  2. patgdut说道:

    1楼正解,当项目规模越来越大的时候,你就费劲了。

发表评论

电子邮件地址不会被公开。 必填项已用*标注