【问题标题】:Will NSLog effect app's speed? [duplicate]NSLog 会影响应用程序的速度吗? [复制]
【发布时间】:2013-01-30 09:29:07
【问题描述】:

可能重复:
Do I need to disable NSLog before release Application?

在我的 iPhone 应用程序中,有 20 多个类。我使用 NSLog 打印这么多值的每个地方。当我在模拟器上运行我的应用程序时,由于一些 NSLogs(特别是打印 NSData 等),它有点低

如果我完成应用程序并在制作 ipa 文件后在设备上运行它会很慢吗? 或者我应该评论类中的所有 NSLog 吗?

【问题讨论】:

标签: iphone ios objective-c nslog


【解决方案1】:

是的。如果您想自己检查它,请使用分配进行分析,看看是什么占用了您的大部分内存。它也会显示 NSLogs。

【讨论】:

    【解决方案2】:

    到处都使用 DLog 而不是 NSLog。在测试和调试时,您会收到调试消息。当您准备发布测试版或最终版本时,所有这些 DLog 行都会自动变为空,并且不会发出任何内容。这样就不需要手动设置变量或注释 NSLog。选择你的构建目标就可以了。

    【讨论】:

    • 我不要注销,因为它会剥夺您从用户那里收到更好的错误报告的能力
    【解决方案3】:

    NSLog 会影响速度,因为它会阻塞导致 IO。它在当前线程中同步运行。 更好的是异步! -- 就像 cocoalumberjack 的 DDLog 一样,它是一种不会阻塞的替代品。 [仍然会导致 IO,请参阅下一个关卡信息]


    DDLog 也知道日志级别。例如。信息、警告和错误: 在发布模式下,您默认将其设置为错误(但可以通过 UserDefault 值更改!)

    警告和信息不会被记录下来,这使得它只会造成非常小的开销


    DDLog 类似于 log4j 但用于 objC!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-06-05
      • 1970-01-01
      • 2015-04-07
      • 2020-12-24
      • 1970-01-01
      • 2011-11-14
      • 1970-01-01
      • 2019-05-02
      相关资源
      最近更新 更多