Separate by Thread: 每個(gè)線程應(yīng)該分開(kāi)考慮。只有這樣你才能揪出那些大量占用CPU的"重"線程
Invert Call Tree: 從上倒下跟蹤堆棧,這意味著你看到的表中的方法,將已從第0幀開(kāi)始取樣,這通常你是想要的,只有這樣你才能看到CPU中話費(fèi)時(shí)間最深的方法.也就是說(shuō)FuncA{FunB{FunC}} 勾選此項(xiàng)后堆棧以C->B-A 把調(diào)用層級(jí)最深的C顯示在最外面
Hide Missing Symbols: 如果dSYM無(wú)法找到你的app或者系統(tǒng)框架的話,那么表中看不到方法名只能看到十六進(jìn)制的數(shù)值,如果勾線此項(xiàng)可以隱藏這些符號(hào),便于簡(jiǎn)化數(shù)據(jù)
Hide System Libraries: 勾選此項(xiàng)你會(huì)顯示你app的代碼,這是非常有用的. 因?yàn)橥ǔD阒魂P(guān)心cpu花在自己代碼上的時(shí)間不是系統(tǒng)上的
Show Obj-C Only: 只顯示oc代碼 ,如果你的程序是像OpenGl這樣的程序,不要勾選側(cè)向因?yàn)樗锌赡苁荂++的
Flatten Recursion: 遞歸函數(shù), 每個(gè)堆棧跟蹤一個(gè)條目
Top Functions: 一個(gè)函數(shù)花費(fèi)的時(shí)間直接在該函數(shù)中的總和,以及在函數(shù)調(diào)用該函數(shù)所花費(fèi)的時(shí)間的總時(shí)間。因此,如果函數(shù)A調(diào)用B,那么A的時(shí)間報(bào)告在A花費(fèi)的時(shí)間加上B.花費(fèi)的時(shí)間,這非常真有用,因?yàn)樗梢宰屇忝看蜗碌秸{(diào)用堆棧時(shí)挑最大的時(shí)間數(shù)字,歸零在你最耗時(shí)的方法。
消耗內(nèi)存分析
直方圖中,每個(gè)柱條(忘了該怎么稱呼了,就這么叫吧)里有兩種顏色,短的那個(gè)表示叫凈分配字節(jié)數(shù)(Net Bytes),是當(dāng)前已經(jīng)分配內(nèi)存但是仍然沒(méi)有被釋放的字節(jié)的總數(shù),而長(zhǎng)的叫做總分配數(shù)(#Overall),是所有當(dāng)前已經(jīng)分配內(nèi)存,包括已經(jīng)被釋放了的對(duì)象或內(nèi)存塊的總數(shù)。不停的滾動(dòng)表,會(huì)發(fā)現(xiàn)一些柱條中短的猛的增加,將他們勾選,然后重點(diǎn)觀察。