再见了NSLog
本文原文发表自我的【 自建博客 】,cnblogs同步发表,格式未经调整,内容以原博客为准 我是前言 打Log是我们debug时最简单朴素的方法, NSLog 对于objc开发就像 printf 对于c一样重要。但在使用 NSLog 打印大量Log,尤其是在游戏开发时(如每一帧都打印数据), NSLog 会明显的拖慢程序的运行速度(游戏帧速严重下滑)。本文探究了一下 NSLog 如此之慢的原因,尝试使用lldb断点调试器解决DebugLog问题。 小测试 测试下分别使用 NSLog 和 printf 打印10000次耗费的时间。 CFAbsoluteTimeGetCurrent() 函数可以打印出当前的时间戳,精度还是很高的,于是乎测试代码如下: 1 2 3 4 5 6 7 8 9 10 11 12 13 CFAbsoluteTime startNSLog = CFAbsoluteTimeGetCurrent(); for (int i = 0; i < 10000; i++) { NSLog(@"%d", i); } CFAbsoluteTime endNSLog = CFAbsoluteTimeGetCurrent(); CFAbsoluteTime startPrintf = CFAbsoluteTimeGetCurrent(); for (int i = 0; i <