2011-08-25 108 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()報表,它不做任何事情。