alloctions工具是用來跟蹤app內存使用狀況。
app
該instrument工具要求你加載一個進程,以便它能收集進程開始以後的數據。 該instrument工具捕獲如下信息: cotegory:類別,一般是一個core Foundation對象、object-c類、或者原始內存塊(block)。在這裏咱們其實只要看懂 All Heap & Anonymous VM(堆分配和匿名虛擬機)這行數據基本就能夠了。框架
persistent Bytes:當前活躍的內存;ide
persistent:當前活躍的內存數量;函數
Transient:當前已經分配內存但仍然沒有被釋放的對象或內存塊的數量;工具
Total Bytes:使用過的內存;線程
Total:所有的內存數,無論是使用仍是沒有使用的都算;翻譯
Allocations:直方條一般爲藍色。當對象總數和最大值之間的比例或最大值和當前分配數的比例少於1/3時,直方條會被修改成黃色。當比例等於1/10或更少時,直方條變爲紅色。對象
注:本人只是對舊的insturments進行翻譯而已,有不對的地方,請你們指出.遞歸
Time Profiler的數據進程
1.Separate by Thread: 每一個線程應該分開考慮。只有這樣你才能揪出那些大量佔用CPU的"重"線程
2.Invert Call Tree: 從上倒下跟蹤堆棧,這意味着你看到的表中的方法,將已從第0幀開始取樣,這一般你是想要的,只有這樣你才能看到CPU中話費時間最深的方法.也就是說FuncA{FunB{FunC}} 勾選此項後堆棧以C->B-A 把調用層級最深的C顯示在最外面
3.Hide Missing Symbols: 若是dSYM沒法找到你的app或者系統框架的話,那麼表中看不到方法名只能看到十六進制的數值,若是勾線此項能夠隱藏這些符號,便於簡化數據
4.Hide System Libraries: 勾選此項你會顯示你app的代碼,這是很是有用的. 由於一般你只關心cpu花在本身代碼上的時間不是系統上的
5.Show Obj-C Only: 只顯示oc代碼 ,若是你的程序是像OpenGl這樣的程序,不要勾選側向由於他有多是C++的
6.Flatten Recursion: 遞歸函數, 每一個堆棧跟蹤一個條目
7.Top Functions: 一個函數花費的時間直接在該函數中的總和,以及在函數調用該函數所花費的時間的總時間。所以,若是函數A調用B,那麼A的時間報告在A花費的時間加上B.花費的時間,這很是真有用,由於它可讓你每次下到調用堆棧時挑最大的時間數字,歸零在你最耗時的方法。