使用Instruments的 Zombies 檢測(cè)僵尸對(duì)象
Instruments為我們提供了一個(gè)檢測(cè)僵尸對(duì)象的工具:Zombies。使用這個(gè)工具時(shí),將會(huì)自動(dòng)開(kāi)啟Enable Zombie Objects模式,而不需要我們自己手動(dòng)去設(shè)置。如圖一 所示,我們可以看到”Zombies” (z?mbi)這個(gè)工具?;静僮骱推渌ぞ咭粯?,啟動(dòng)后點(diǎn)擊工具欄上的紅色按鈕來(lái)啟動(dòng)程序。

在程序運(yùn)行期間,如果定位到僵尸對(duì)象,則會(huì)彈出一個(gè)提示對(duì)話框,如圖二所示。

我們可以點(diǎn)擊對(duì)話框右側(cè)的箭頭來(lái)定位到具體的代碼及調(diào)用棧,圖三所示。

雙擊調(diào)用棧對(duì)應(yīng)的方法后,還可以查看具體的代碼,如圖四所示。

//==================================
Xcode的 Debug navigator中提供了幾個(gè)計(jì)量器來(lái)幫助我們跟蹤程序的性能,包括CPU、內(nèi)存、電量等。如圖5和6所示。


在每個(gè)計(jì)量器的詳情面板中的右上角,都提供了一個(gè)Profile in Instruments按鈕,如圖6所示(Energy Impact除外,其在面板詳情中有幾個(gè)按鈕直接打開(kāi)Instruments指定的模板,如圖7所示 )

這些按鈕可以讓我們直接跳轉(zhuǎn)到Instruments中。在點(diǎn)擊這些按鈕時(shí),會(huì)彈出一個(gè)提示框,提示“Transfer current debug session?”,下面三個(gè)按鈕,如圖8所示。

Transfer會(huì)在程序當(dāng)前的運(yùn)行狀態(tài)中直接切換到Instruments,然后繼續(xù)跟蹤程序的運(yùn)行狀態(tài);而Restart則是關(guān)閉當(dāng)前運(yùn)行的程序,重新開(kāi)始一次新的Profile。 不過(guò),這兩種情況都會(huì)關(guān)閉當(dāng)前的性能分析(profiling),啟動(dòng)Instruments,初始一個(gè)新的性能分析。