Systrace Walkthrough
Systrace
Analyzing UI Performance with Systrace
Speed up your app
Systrace能做什麼?
- 計算容器的性能
- 發現性能的瓶頸
Systrace的使用準備
- 4.1以上
- root
- Android SDK Tools 20
- python環境
Systrace啓動
你可以通過命令行或者Device Monitor兩種方式收集Systrace信息,以下以命令行爲例介紹收集方式(因爲我Device Monitor的方式報錯)。
首先進入sdk下的platform-tools/systrace目錄下:
然後在命令下執行以下命令來收集數據: python systrace.py --time=10 -o mynewtrace.html sched gfx view wm
上面的參數–time爲間隔時間,-o爲文件名,更詳細的參數信息如下:
參數名 | 意義 |
---|---|
-h,--help |
幫助信息 |
-o <FILE> |
保存的文件名 |
-t N,--time=N |
多少秒內的數據,默認爲5秒,以當前時間點往後倒N個時間 |
-b N,--buf-size=N |
單位爲千字節,限制數據大小 |
-k <KFUNCS> --ktrace=<KFUNCS> |
追蹤特殊的方法 |
-l,--list-categories |
設置追蹤的標籤 |
-a <APP_NAME>,--app=<APP_NAME> |
包名 |
--from-file=<FROM_FILE> |
創建報告的來源trace文件 |
-e <DEVICE_SERIAL>,--serial=<DEVICE_SERIAL> |
設備號 |
其中標籤可選項如下:
標籤名 | 意義 |
---|---|
gfx | Graphics |
input | Input |
view | View |
webview | Webview |
vm | Window Manager |
am | Activity Manager |
audio | Audio |
video | Video |
camera | Camera |
hal | Hardware Modules |
res | Resource Loading |
dalvik | Dalvik VM |
rs | RenderScript |
sched | Cpu Scheduling |
freq | Cpu Frequency |
membus | Memory Bus Utilization |
idle | Cpu Idle |
disk | Disk input and output |
load | Cpu Load |
sync | Synchronization Manager |
workq | Kernel Workqueues |
以上標籤並不支持所有機型,還有要想在輸出中看到任務的名稱,需要加上sched.
上面的命令執行完後,會生成一個html文件:
打開該文件後,我們會看到如下頁面:
systrace快捷鍵
快捷鍵 | 作用 |
---|---|
w | 放大 |
s | 縮小 |
a | 左移 |
d | 右移 |
f | 返回選中區域,切放大選中區域 |
Alerts
Alerts一欄標記了以下性能有問題的點,你可以點擊該點查看詳細信息,右邊側邊欄還有一個Alerts框,點擊可以查看每個類型的Alerts的數量:
Frame
在每個包下都有Frame一欄,該欄中都有一個一個的F
代表每一個Frame
,用顏色來代表性能的好壞,依次爲綠-黃-紅
(性能越來越差),點擊某一個F
,會顯示該Frame繪製過程中的一些Alerts信息:
如果你想查看Frame的耗時,可以點擊某個F標誌,然後按m
鍵: