1.簡介
Traceview是android平臺配備的一個很好的性能分析工具。它可以通過圖形化的方式讓我們了解我們要跟蹤的程序的性能,并且能具體到method。android開發(fā)中可以用來:方法耗時,性能優(yōu)化
2.使用
-
- 生成.trace文件
在我們需要追蹤的代碼中,前后輸入:
Debug.startMethodTracing("test");//設(shè)置參數(shù)為生成的trace文件名CODE
Debug.stopMethodTracing();
然后運行項目,此時在設(shè)備的SD下會生成test.trace文件 - 生成.trace文件
2.拷貝文件到電腦
在電腦可以使用adb命令后,輸入如下(把文件拷貝到d:/info目錄下):
adb pull /sdcard/test.trace D:\info-
3.打開traceview
進入SDK的tools目錄后,命令窗口執(zhí)行traceview,如下:
traceview D:\info\dmtrace.trace.
此時traceview視圖便會顯示出來:
這里寫圖片描述
3.詳細(xì)介紹
-
1.上部分
這里寫圖片描述
X軸表示時間消耗,單位毫秒,Y軸表示各個線程,每個線程中不同方法使用不同顏色表示,顏色面積寬,表示占用cpu時間越長
-
2.下部分
這里寫圖片描述
這里寫圖片描述
列1:"Name"表示函數(shù)名。
雙擊函數(shù)名,可以看到在上半界面是時間軸面圖(Timeline Panel)看他的所消耗的時間段。
雙擊函數(shù)名左邊的"+"展開后可以看到,該函數(shù)的"parents"和"children"
列2:"incl%"表示函數(shù)的Inclusive time在整個MethodTracing時間里占的百分比。
列3:"Inclusive"表示Inclusive time。
列4:"Excl%"表示函數(shù)的Exclusive time在整個MethodTracing時間里占的百分比。
重點列:我們關(guān)注點
"Calls+RecurCalls/Total"表示對函數(shù)的調(diào)用次數(shù)(包括遞歸調(diào)用)。如圖2的toplevel那列為"30+0"表示30次非遞歸調(diào)用,0次遞歸調(diào)用.
Cpu Time / Call 表示該方法耗時
Real time/Call 實際實際
Real time 包括了cpu的上下文切換、阻塞、GC等等,所以時間比較長,所以我們性能分析重點關(guān)注:Calls+RecurCalls/Total, Cpu Time / Call這兩列
- 4.方法查找
在視圖底部,有find一欄,我們可以在這里輸入方法名,迅速的找到相應(yīng)方法分析