2009-07-14 71 views
6

我在優化很短的加載時間的iPhone應用程序的過程中,我想知道:測量的iPhone應用程序加載時間

是否有測量一個iPhone應用程序的加載時間從時間的一種手段,用戶水龍頭該圖標的時間,該應用程序可用(或至少-viewDidLoad被調用)?

理想情況下,這可以在設備和模擬器中工作,但是如果有人找到了一種方法來專門在模擬器中測量這個時間,那至少是一個起點。

而且沒有; 「秒錶」或「一密西西比,兩密西西比」不算。 :-)

+0

你不能簡單地將時間記錄在`applicationDidLaunch`上,然後記錄`viewDidLoad`被調用的時間? – 2010-11-03 17:03:35

回答

2

開始在App代表的init方法的計時器,然後停止當viewDidAppear: -

開始計時: -

NSDate *startTime = [NSDate date]; 

...和結束: -

NSTimeInterval elapsedTime = [startTime timeIntervalSinceNow]; 
NSLog(@"Startup tasks: %f", -elapsedTime); 

這將不會從點擊圖標的那一刻開始,但應該早於您的工作。您可能可以在調試器控制檯中輸出的日誌中查看更早的時間?

1

NSLog(@"started loading");放在applicationDidFinishLauching的開頭,NSLog(@"finished loading");放在應用程序委託的viewDidAppear中。在調試器控制檯中,您可以得到類似於

2010-11-21 17:16:06.278 Phy[9157:207] started loading 
2010-11-21 17:16:06.301 Phy[9157:207] finished loading 

因此,模擬器需要0.03秒來啓動應用程序。

2

作爲WWDC 2016的一部分Apple發佈了一個新的環境變量,作爲測試版2的一部分提供,它將幫助您記錄應用程序的啓動時間。

上述答案的一個問題是,他們沒有考慮圖像加載和重新綁定和綁定修正發生前的主要時間。

如果您添加變量 DYLD_PRINT_STATISTICS = 1您將獲得打印在控制檯中的預主時間。

來自WWDC 2016的會話406進入了此變量用法以及如何解釋結果。