1. 程式人生 > >Android效能專項測試之Allocation Tracker(Android Studio)

Android效能專項測試之Allocation Tracker(Android Studio)

Android Studio版的特點

Allocation Tracker(AS)工具比Allocation Tracker(Eclipse)工具強大的地方是更炫酷,更清晰,但是能做的事情都是一樣的。

Allocation Tracker啟動

這裡寫圖片描述

在記憶體圖中點選途中標紅的部分,啟動追蹤,再次點選就是停止追蹤,隨後自動生成一個alloc結尾的檔案,這個檔案就記錄了這次追蹤到的所有資料,然後會在右上角開啟一個數據面板:
這裡寫圖片描述

面板左上角是所有歷史資料檔案列表,後面是詳細資訊,好,現在我們來看詳細介紹資訊面板:
這裡寫圖片描述

下面我們用字母來分段介紹

A:檢視方式選項

A標識的是一個選擇框,有2個選項
這裡寫圖片描述

  • Group by Method:用方法來分類我們的記憶體分配
  • Group by Allocator:用記憶體分配器來分類我們的記憶體分配
    不同的選項,在D區顯示的資訊會不同,預設會以Group by Method來組織,我們來看看詳細資訊:

這裡寫圖片描述

從上圖可以看出,首先以執行緒物件分類,預設以分配順序來排序,當然你可以更改,只需在Size上點選一下就會倒序,如果以Count排序也是一樣,Size就是記憶體大小,Count就是分配了多少次記憶體,點選一下執行緒就會檢視每個執行緒裡所有分配記憶體的方法,並且可以一步一步迭代到最底部:
這裡寫圖片描述
這裡寫圖片描述

當你以Group by Allocator來檢視記憶體分配的情況時,詳細資訊區域就會變成如下:
這裡寫圖片描述

預設還是以記憶體分配順序來排序,但是是以每個分配者第一次分配記憶體的順序:
這裡寫圖片描述
這種方式顯示的好處,是我們很好的定位我們自己的程式碼的分析資訊,比如上圖中,以包名來找到我們的程式,在這次追蹤中包民根目錄一共有五個類作為分配器分配了78-4-1=73次記憶體。

B:Jump To Source按鈕

如果我們想看記憶體分配的實際在原始碼中發生的地方,可以選擇需要跳轉的物件,點選該按鈕就能發現我們的原始碼,但是前提是你有原始碼:

這裡寫圖片描述
如果你能跳轉到原始碼,Jump To Source按鈕才是可用的,都是跳轉到類。

C:統計圖示按鈕

該按鈕比較酷炫,如果點選該按鈕,會彈出一個新視窗,裡面是一個酷炫的統計圖示,有柱狀圖和輪胎圖兩種圖形可供選擇,預設是輪胎圖,其中分配比例可以選擇分配次數和佔用記憶體大小,預設是大小Size

輪胎圖

這裡寫圖片描述
輪胎圖是以圓心為起點,最外層是其記憶體實際分配的物件,每一個同心圓可能被分割成多個部分,代表了其不同的子孫,每一個同心圓代表他的一個後代,每個分割的部分代表了某一帶人有多人,你雙擊某個同心圓中某個分割的部分,會變成以你點選的那一代為圓心再向外展開。如果想回到原始狀態,雙擊圓心就可以了。

1.起點

這裡寫圖片描述
圓心是我們的起點處,如果你把滑鼠放到我圖中標註的區域,會在右邊顯示當前指示的是什麼執行緒(Thread1)以及具體資訊(分配了8821次,分配了564.18k的記憶體),但是紅框標註的區域並不代表Thread1,而是第一個同心圓中佔比最大的那個執行緒,所以我們現在把滑鼠放到第一個同心圓上,可以看出來,我們劃過同心圓的軌跡時可以看到右邊的樹枝變化了好幾個值:
這裡寫圖片描述
2.檢視某一個扇面
我們剛開啟是全域性資訊,我們如果想看其中某個執行緒,詳細資訊,可以順著某個扇面向外圍滑動,當然如果你覺得不還是不清晰,可以雙擊該扇面全面展現該扇面的資訊:

這裡寫圖片描述

在某個地方雙擊時,新的輪胎圖是以雙擊點為圓心,你如果想到剛才的圓,雙擊圓心空白處就可以:
這裡寫圖片描述
3.一個記憶體的完整路徑
這裡寫圖片描述
這裡寫圖片描述

柱狀圖:

這裡寫圖片描述
柱狀圖以左邊為起始點,從左到右的順序是某個的堆疊資訊順序,縱座標上的寬度是以其Count/Size的大小決定的。柱狀圖的內容其實和輪胎圖沒什麼特別的地方

1.起點

這裡寫圖片描述
2.檢視某一個分支

這裡寫圖片描述
3.Count/Size切換

這裡寫圖片描述