2012-03-20 26 views
2

我正在密切關注我的應用程序在開發中的開始時間。在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的具體問題。有人看到類似的放緩嗎?

+0

我已經提交了一個錯誤報告。 – Palimondo 2012-03-21 10:18:06

+0

我有同樣的問題。看起來Xcode 4.3運行速度較慢並且意外掛起。也許那就是我。 – 2012-04-25 16:51:57

回答

1

在進一步調查中,我在分析過程中(在觀看WWDC 2012會議235「iOS應用程序性能 - 響應性」後注意到我注意到的時差可歸因於致電_UIAccessibilityInitialize

我一直在測試我的應用程序的可訪問性,並啓用設置>輔助>TRIPPLE點擊主頁>。這與5.1更新的發佈相吻合,並且我錯誤地將問題歸因於新版本。我猜操作系統必須初始化輔助功能,以便您可以隨時打開VoiceOver,而無需重新啓動所有打開的應用程序。據我所知,啓用輔助功能的性能影響沒有明確記錄。所以,爲了節省其他的性能易用性意識到開發人員的這個驚喜,知道即使用Tripple-click Home設置爲Ask,您支付的費用爲_UIAccessibilityInitialize

我也正在設計一個方案來懶惰地執行我的自定義AccessibleLabels,因爲它們也對我的應用程序在正常使用中的響應性產生了不可忽略的影響。我想沒有免費的午餐;-)

相關問題