我正在密切關注我的應用程序在開發中的開始時間。在main
中,我使用CFAbsoluteTimeGetCurrent()
來存儲開始時間,並在調用didFinishLaunchingWithOptions
時以及在我的StopWatchView
的初始化和繪製過程中以及最後在主視圖控制器的viewDidAppear
中記錄已用時間。這讓我很好地確定了我的起步時間和檢查時間。我在實際設備上的啓動性能測試是在iPhone 3G(iOS 4.2.1)和iPhone 4上完成的。在iPhone 4上開始的應用程序較慢,使用Xcode 4.3.1編譯的iOS 5.1?
由於將設備升級到iOS 5.1,我不得不將Xcode升級到4.3.1版本。我立即注意到iPhone 4的開始時間發生了巨大變化。所有測量均使用附帶的Xcode進行調試,從控制檯中的日誌讀取已用時間。現在我還添加了調試標籤,可以顯示經過的時間,以便在沒有附加調試器的情況下進行測量。
爲了消除更改是由我的代碼中的某些內容引起的可能性,我創建了新的實用程序應用程序並確認了減速。 iPhone 4的速度比iPhone 3G快3倍,現在比3G更慢(!!!)。啓動時間也變得非常不穩定(±0.3s),過去是+ -0.05s。飛行模式中的波動消失,所以我懷疑它是由與iCloud有關的後臺進程引起的。不過,在升級之前和之後,iPhone 4的啓動時間縮短了3倍,這讓我感到非常困惑。
這裏是平均啓動時間,第一調試在Xcode(然後在不Xcode中)期間:
Debug No-debug
iPhone 3G: 1.23s (0.67s)
iPhone 4: 0.43s (-----) [iOS 5.0.1, Xcode 4.3]
iPhone 4: 1.53s (1.18s) [iOS 5.1, Xcode 4.3.1]
iPad 2: 0.41s (0.22s) [iOS 5.1, Xcode 4.3.1]
,如果這是由iOS的5.1或4.3.1的Xcode或造成的,如果這是我不知道iPhone 4的具體問題。有人看到類似的放緩嗎?
我已經提交了一個錯誤報告。 – Palimondo 2012-03-21 10:18:06
我有同樣的問題。看起來Xcode 4.3運行速度較慢並且意外掛起。也許那就是我。 – 2012-04-25 16:51:57