我在優化很短的加載時間的iPhone應用程序的過程中,我想知道:測量的iPhone應用程序加載時間
是否有測量一個iPhone應用程序的加載時間從時間的一種手段,用戶水龍頭該圖標的時間,該應用程序可用(或至少-viewDidLoad被調用)?
理想情況下,這可以在設備和模擬器中工作,但是如果有人找到了一種方法來專門在模擬器中測量這個時間,那至少是一個起點。
而且沒有; 「秒錶」或「一密西西比,兩密西西比」不算。 :-)
我在優化很短的加載時間的iPhone應用程序的過程中,我想知道:測量的iPhone應用程序加載時間
是否有測量一個iPhone應用程序的加載時間從時間的一種手段,用戶水龍頭該圖標的時間,該應用程序可用(或至少-viewDidLoad被調用)?
理想情況下,這可以在設備和模擬器中工作,但是如果有人找到了一種方法來專門在模擬器中測量這個時間,那至少是一個起點。
而且沒有; 「秒錶」或「一密西西比,兩密西西比」不算。 :-)
開始在App代表的init方法的計時器,然後停止當viewDidAppear: -
開始計時: -
NSDate *startTime = [NSDate date];
...和結束: -
NSTimeInterval elapsedTime = [startTime timeIntervalSinceNow];
NSLog(@"Startup tasks: %f", -elapsedTime);
這將不會從點擊圖標的那一刻開始,但應該早於您的工作。您可能可以在調試器控制檯中輸出的日誌中查看更早的時間?
將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秒來啓動應用程序。
作爲WWDC 2016的一部分Apple發佈了一個新的環境變量,作爲測試版2的一部分提供,它將幫助您記錄應用程序的啓動時間。
上述答案的一個問題是,他們沒有考慮圖像加載和重新綁定和綁定修正發生前的主要時間。
如果您添加變量 DYLD_PRINT_STATISTICS = 1
您將獲得打印在控制檯中的預主時間。
來自WWDC 2016的會話406進入了此變量用法以及如何解釋結果。
你不能簡單地將時間記錄在`applicationDidLaunch`上,然後記錄`viewDidLoad`被調用的時間? – 2010-11-03 17:03:35