NSLog会减慢我的应用吗?

时间:2013-10-12 18:39:56

标签: ios objective-c cocoa-touch

我的应用程序中有很多NSLog - 其中一些通常会打印大量数据 - 即搜索结果。这会对我的应用程序的速度产生明显的影响吗?

我对宏不熟悉 - 是否有人能够建议启用/禁用所有NSLog?

4 个答案:

答案 0 :(得分:16)

NSLog因为同步而导致您的应用变慢。 要切换所有NSLog

#ifdef DEBUG
#define NSLog(...) NSLog(__VA_ARGS__)
#else 
#define NSLog(...)
#endif

答案 1 :(得分:4)

您应该使用MY CURRENT PREFIX.PCH FILE中的DLog之类的内容。它将禁用Release版本中的日志记录。 This很好地解释了为什么你不应该在发布版本中保留NSLog

答案 2 :(得分:1)

如果您的应用是用于制作,请尽量减少它们。只保留对错误或可能的警告有用的那些。如果您使用它们来帮助您进行调试,那么我建议您将其删除。

答案 3 :(得分:0)

YES!太多的NSLO肯定会减慢你的应用程序。

作为最佳实践,我通常会在.pch(预编译的头文件)中添加它

#ifdef DEBUG
#define DebugLog(f, ...) NSLog(f, ## __VA_ARGS__)
#else
#define DebugLog(f, ...)
#endif

在调试目标的构建设置中的预处理器宏中启用了DEBUG。使用DebugLog而不是NSLog()。

您的发布/发布不会定义DEBUG。因此,您的应用程序不会在分布式应用程序的日志中打印任何内容。