【发布时间】:2011-09-18 12:03:43
【问题描述】:
我想知道有很多 NSLog() 调用是否会影响应用程序的性能或内存。 有谁知道这样的事情吗?
我想在我的应用程序(很多)的每个函数中调用 NSLog() 以便我可以看到 跟踪问题后的崩溃日志。
谢谢。
【问题讨论】:
标签: iphone performance ipad nslog
我想知道有很多 NSLog() 调用是否会影响应用程序的性能或内存。 有谁知道这样的事情吗?
我想在我的应用程序(很多)的每个函数中调用 NSLog() 以便我可以看到 跟踪问题后的崩溃日志。
谢谢。
【问题讨论】:
标签: iphone performance ipad nslog
是的。所以我在我的 pch 文件中定义了这个。
#ifdef DEBUG
# define DLog(fmt, ...) NSLog((@"%s [Line %d] " fmt), __PRETTY_FUNCTION__, __LINE__, ##__VA_ARGS__);
#else
# define DLog(...)
#endif
// ALog always displays output regardless of the DEBUG setting
#define ALog(fmt, ...) NSLog((@"%s [Line %d] " fmt), __PRETTY_FUNCTION__, __LINE__, ##__VA_ARGS__);
我没有使用 NSLog,而是使用 DLog 和 ALog。
(注意或版权:我很久以前从其他一些我不记得的 SO 帖子中获得了此代码。从我的 sn-p 库中再次粘贴它)
【讨论】:
__PRETTY_FUNCTION__ 和__LINE__ 可以减少显式识别您在代码中的位置的需要。 (没有什么比“我遇到错误”消息更无用的了。)
“取消定义”NSLog 的另一个简单解决方案
在 .pch 文件中:
#ifndef DEBUG
#define NSLog(...) /* */
#endif
【讨论】:
是的,它会降低性能,特别是如果函数应该花费很短的时间,NSLog(这是一个 I/O 进程)会使其花费比预期更多的时间。
【讨论】: