Android的性能測試

      Traceview是Android平臺下的性能測試工具,它可以通過圖形化的方式讓我們瞭解我們要跟蹤的程序的性能,並且能具體到method。它包含了兩部分,一部分用於程序執行過程中採集數據,另一部分用於在程序執行完畢後對數據進行分析。

第一步採集數據

用戶可以選擇激活或者取消實時數據採集功能。當該功能激活以後,Traceview進程就會記錄下用戶程序每一次的函數調用和耗時,並將數據保存到SDCard上的一個二進制文件中。

在程序中調用android.os.Debug.startMethodTracing方法啓動實時數據採集,如下:

protected void onCreate(Bundle savedInstanceState) {

  super.onCreate(savedInstanceState);//啓動實時數據採集

  Debug.startMethodTracing("liming"); 

}

protected void onStop() {

  Debug.stopMethodTracing();//停止數據採集

  super.onStop();

}

第二步分析數據

把SDCard上的二進制數據文件導出到你的電腦上,在Dos窗口上進入Android SDK的tools目錄,然後執行命令:

traceview   c://test.trace

執行指令後將打開圖形化分析界面(界面內容說明如下)。

 

窗口的下半部分是對各個方法調用的彙總圖Profile Panel。

Exclusive time是該方法本身基本操作的時間(不包括子方法調用)。

Inclusive time是該方法調用所用的時間(包括子方法調用)。

列1:"Name"表示Method名。

雙擊Method名,可以看到在上半界面是時間軸面圖(Timeline Panel)看他的所消耗的時間段。(用粗的線段標註)。

雙擊Method名左邊的"+"展開後可以看到,該Method的"parents"和"children"

列2:"incl%"表示Method的Inclusive time在整個MethodTracing時間裏佔的百分比。

列3:"Inclusive"表示Inclusive time。

列4:"Excl%"表示Method的Exclusive time在整個MethodTracing時間裏佔的百分比。

列5:"Exclusive"表示Exclusive time。

列6:"Calls+RecurCalls/Total"表示對Method的調用次數(包括遞歸調用)。如:"14+0"表示14次非遞歸調用,0次遞歸調用.

列7:"time/calls"表示平均的調用時間(即Inclusive time/ total calls)。

注:如果方法A調用方法B那麼方法A稱爲方法B的"parents",方法B稱爲方法A的"children."

下邊還有搜索框,可以進行方法類等的搜索。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章