2016-02-28 191 views
1

我做了一個Swift應用程序,它在iPhone 6和6 plus上運行得非常好,但是當我在iPhone 5或更低版本上測試它時,有一些滯後現象。如何減少CPU使用率?

經過分析,我看到了高CPU /內存消耗。

我想知道是否有一些提示或最佳做法來減少這種用法?

我知道使用不同的線程非常重要,當它們不再使用時返回到空閒狀態,但我已經這樣做了。

消耗最多資源的代碼會創建一個容器(如通知中心),並帶有一些按鈕並在其下方應用模糊效果。

回答

1

我發現蘋果的這個document有很好的提示和技巧來提高性能。

還要確保您沒有在主線程上進行資源密集型的非UI工作,因爲這會導致速度較慢的設備出現滯後。

+0

我會看看這個文件。謝謝雨果。 – f1rstsurf

+0

我建議你首先確保你沒有在主線程上做任何繁重的計算,然後看看文檔。 –

+0

我用儀器更深入地探究了哪個函數超載我的CPU,並且我發現:http://imgur.com/pRIR5zU,此外,只有當我的容器下垂時纔會發生加速。 – f1rstsurf

1

當你說

分析後,我看到了一個高的CPU /內存消耗

是使用時間簡檔儀器?

時間簡檔會告訴你到底是什麼佔用CPU資源,以及您對CPU的內核的使用,螺紋延遲等

Time Profiling with Instruments

+0

是的,這是使用時間分析器,但我必須承認我不熟悉它。我會查看您的鏈接,瞭解如何查看耗費我的資源的內容。感謝 – f1rstsurf

+1

花費一些時間樂器,這很有趣。看看它上面的WWDC視頻,他們每年都會有一兩次關於它的討論,但沒有詳細說明,但足以使用它並確定CPU中需要花費的時間。儀器視圖右側有幾個選項,例如隱藏系統庫,這有助於只顯示相關信息 – jarryd

+0

我開始看一個YouTube視頻給出索姆解釋,這是真棒。 – f1rstsurf

0

好吧,我發現問題出在哪裏了。 我使用庫「FXBlur」來創建模糊效果。

該庫具有每秒鐘更新容器內容的功能。

我剛剛修改了代碼以刪除此功能,我的CPU使用率現在在0和3%之間振盪,而不是之前的37%。

謝謝大家的幫助。

相關問題