可能重复:
我需要在发布应用程序之前禁用 NSLog 吗?
在我的 iPhone 应用程序中有 20 多个类。我使用 NSLog 打印这么多值的每个地方。当我在模拟器上运行我的应用程序时,它有点低,因为一些 NSLogs(特别是打印 NSData 等)
如果我完成应用程序并在制作 ipa 文件后在设备上运行它会很慢吗?或者我应该评论类中的所有 NSLogs 吗?
可能重复:
我需要在发布应用程序之前禁用 NSLog 吗?
在我的 iPhone 应用程序中有 20 多个类。我使用 NSLog 打印这么多值的每个地方。当我在模拟器上运行我的应用程序时,它有点低,因为一些 NSLogs(特别是打印 NSData 等)
如果我完成应用程序并在制作 ipa 文件后在设备上运行它会很慢吗?或者我应该评论类中的所有 NSLogs 吗?
是的,它确实。如果您想自己检查它,请使用分配进行分析,看看是什么占用了您的大部分内存。它也会显示 NSLogs。
代替 NSLog 到处使用 DLog。在测试和调试时,您会收到调试消息。当您准备发布测试版或最终版时,所有这些 DLog 行都会自动变为空,并且不会发出任何内容。这样就不需要手动设置变量或注释 NSLog。选择你的构建目标会处理它。
NSLog 会影响速度,因为它会阻塞并导致 IO。它在当前线程中同步运行。更好的是异步!-- 就像 cocoalumberjack 的 DDLog 一样,它是一种不会阻塞的替代品。[仍然会导致 IO,请参阅下一个有关级别的信息]
还 DDLog 知道日志级别。EG 信息、警告和错误:在发布模式下,您默认将其设置为错误(但可以通过 UserDefault 值更改!)
然后没有记录警告和信息,这使得它只造成非常小的开销
DDLog 与log4j类似,但用于 objC!