NSLog延迟一般问题?

时间:2011-08-25 08:05:44

标签: objective-c xcode

我多次使用NSLog,我知道它有延迟时间。 我的应用程序有延迟时间,我想知道是否有很多日志可以创建。

例如,如果我有这段代码:

samplerTimer = [NSTimer scheduledTimerWithTimeInterval: 0.001f target: self selector: @selector(CheckData) userInfo: nil repeats: YES];
NSLog(@"%f",tmp);

计时器每1ms调用一个函数,它工作得很好,但我担心的是日志需要更多时间,所以计时器例程会有所改变。 我使用硬件,所以mseconds很重要。

我想了解,在nslog期间究竟发生了什么?系统正在睡觉?其他事情是并行完成的吗? 确切需要多长时间?

1 个答案:

答案 0 :(得分:1)

NSLog()使用printf写入标准输出或错误。它还会导致刷新,这意味着程序将阻塞,直到输出已发送到OS。这很慢。

删除NSLog()语句会加快速度。关闭所有注销的最简单方法是添加:

#define NSLog(...) 0

在您的前缀标题(.pch文件)中,框架中包含。或者您可以在要静音的文件中添加此行。如果有效地将所有NSLog()语句替换为0,则不执行任何操作。