Instruments分析并優(yōu)化iOS性能(已更新到XCode9)

我的博客搬家了

使用Xcode自帶的Instruments工具,檢測CPU

Instruments

打開Instruments:Xcode -> Product -> Profile 或者 cmd + i
啟動后如下:


Instruments.png

其中常用的有用來檢測內存泄露的Leaks和查看CPU消耗情況的Time Profiler。下面介紹查看CPU使用情況的Time Profiler

Time Profier

  1. 打開Time Profier
Timer profile 9.0.png

要查看每個函數的CPU性能,直接雙擊函數就可以定位到代碼了。
函數前面的數值是所用時間,可以根據這個時間判斷是是否需要優(yōu)化。

有了上面的基礎知識就可以對App的CPU消耗情況進行實時檢測了。

常見的對CPU消耗過高的操作

  • 加載圖片
    兩種不同方式在相同時間內的CPU消耗情況對比:
    Paste_Image.png

    屏幕快照 2016-03-13 下午6.25.34.png

    并且,使用5s真機測試以下代碼40s后Memory過高造成閃退,但是使用imageWithContentOfFile數分鐘后沒有出現閃退現象
while (1)
    {
        [UIImage imageNamed:@"58_58"];
    }
  • 初始化對象
    • 正則表達式
    • 時間戳


      屏幕快照 2016-03-13 下午6.37.50.png

在需要多次使用的地方盡量只初始化一次,然后多次使用

  • 視圖布局
/-(void)layoutSubviews
{
    // do something
}
[view setNeedsLayout];
[view layoutIfNeeded];

這些函數盡量不要使用。每對view進行一次重新布局就會對CPU增加很多消耗。

  • 繪制圖層
    需要用到
[layout rendInContext:]

的地方盡量換成iOS7以后新增的方法:

[view drawViewHierachyInRect:]

性能同樣可以獲得很大的提升

上面的內容如有錯誤,還請在評論區(qū)指出。如果對您有幫助請給個贊,謝謝。

我的博客搬家了

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容