2011-08-25 71 views
0

我多次使用NSLog,并且我知道它有延迟时间。 我的应用程序有延迟时间,我不知道是否有许多日志可以创建。NSLog延迟一般问题?

例如,如果我有这样的代码:

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

计时器被调用函数每1ms的,并且它的伟大工程,但我担心的是,日志需要更多的时间,所以计时器例程样的更改。 我使用硬件,所以mseconds很重要。

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

回答

1

NSLog()使用printf写入标准输出或错误。它也会导致刷新,这意味着程序会阻塞,直到输出被发送到操作系统。这很慢。

删除NSLog()语句会加速很多事情。最简单的方法把所有注销,则补充道:

#define NSLog(...) 0 
在前缀头

(该.pch文件),下面框架包括。或者你可以在你想要保持沉默的文件中加入这一行。如果有效地用0取代所有NSLog()报表,它不做任何事情。