日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

理解和使用systrace

發布時間:2025/3/15 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 理解和使用systrace 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

理解和使用systrace。

一、介紹systrace

systrace是Android4.1版本之后推出的,對系統Performance分析的工具。

systrace的功能包括跟蹤系統的I/O操作、內核工作隊列、CPU負載以及Android各個子系統的運行狀況等。在Android平臺中,它主要由3部分組成:

  • 內核部分:Systrace利用了Linux Kernel中的ftrace功能。所以,如果要使用systrace的話,必須開啟kernel中和ftrace相關的模塊。
  • 數據采集部分:Android定義了一個Trace類。應用程序可利用該類把統計信息輸出給ftrace。同時,Android還有一個atrace程序,它可以從ftrace中讀取統計信息然后交給數據分析工具來處理。
  • 數據分析工具:Android提供一個systrace.py(python腳本文件,位于Android SDK目錄/sdk/platform-tools/systrace中,其內部將調用atrace程序)用來配置數據采集的方式(如采集數據的標簽、輸出文件名等)和收集ftrace統計數據并生成一個結果網頁文件供用戶查看。

二、抓取systrace

有三種方式抓取systrace:

2.1 systrace.py工具

命令行的用法是:

1 python systrace.py [options] [category1] [category2] ... [categoryN]

需要裝python,最好是2.7版本,避免出現問題,示例如下:

12 cd android-sdk/platform-tools/systracepython systrace.py --time=10 -o mynewtrace.html sched gfx view wm

2.1.1 options

其中options可取值:

options 描述
-o < FILE > 輸出的目標文件
-t N, –time=N 執行時間,默認5s
-b N, –buf-size=N buffer大小(單位kB),用于限制trace總大小,默認無上限
-k < KFUNCS >,–ktrace=< KFUNCS > 追蹤kernel函數,用逗號分隔
-a < APP_NAME >,–app=< APP_NAME > 追蹤應用包名,用逗號分隔
–from-file=< FROM_FILE > 從文件中創建互動的systrace
-e < DEVICE_SERIAL >,–serial=< DEVICE_SERIAL > 指定設備
-l, –list-categories 列舉可用的tags

2.1.2 category

其中category可取值:

category 描述
gfx Graphics
input Input
view View System
webview WebView
wm Window Manager
am Activity Manager
sm Sync Manager
audio Audio
video Video
camera Camera
hal Hardware Modules
app Application
res Resource Loading
dalvik Dalvik VM
rs RenderScript
bionic Bionic C Library
power Power Management
sched CPU Scheduling
irq IRQ Events
freq CPU Frequency
idle CPU Idle
disk Disk I/O
mmc eMMC commands
load CPU Load
sync Synchronization
workq Kernel Workqueues
memreclaim Kernel Memory Reclaim
regulators Voltage and Current Regulators

2.2 Device Monitor(DDMS)

可以使用Eclipse或者Android Studio集成開發工具,切換到DDMS,點擊devices,點擊Systrace按鈕:



補充說明:

  • Destionation file :trace輸出的文件路徑
  • Trace duration : 配置抓取systrace的時間,通常設置5秒,并在5秒內重現問題,時間太短會導致問題重現時沒有被抓到,時間太長會導致Java Heap不夠而無法保存,因此在能抓到問題點的情況下,時間越小越好。
  • Trace Buffer Size : Buffer Size是存儲systrace的size,同樣的,太小會導致信息丟失,時間太長會導致Java Heap不夠而無法保存,建議20480。
  • Enable Application Traces from :如果用戶有自己在應用程序中加入自己的systrace log:
    Trace.beginSection("newInstance"); Trace.endSection();
    那么此處必須選擇這個應用對應的進程名字,否則新加的systrace log不會被抓到。

三、自定義systrace

有時候為了debug方便,那么我們需要自己在apk或者framework層添加trace信息:

3.1 app層

app可以使用:

123 import android.os.Trace;Trace.beginSection(String sectionName)Trace.EndSection()

然后通過python systrace.py --app=sectionName?指定apk,或者通過ddms選擇指定apk,抓取systrace分析。

3.2 Java framework層

Java Framework可以使用:

123 import android.os.Trace;Trace.traceBegin(long traceTag, String methodName)Trace.traceEnd(long traceTag)

抓取systrace分析。

3.3 Native framework層

Native Framework可以使用:最好在函數開頭聲明定義

12 #include <cutils/trace.h>ATRACE_CALL()

抓取systrace分析。

四、分析systrace

Google Chrome瀏覽器可以打開systrace,如果打不開,可以通過chrome://tracing/,然后load systrace。

以分析UI Performance為例:

4.1 Frame

每個應用都有一行專門顯示frame,每一幀就顯示為圓圈,正常繪制是1秒60幀,大約一幀16.6毫秒,在這個值以下是正常顏色綠色,如果超過它就會變成紅色、黃色。非綠色的都說明有問題。這時需要通過’w’鍵放大那一幀,然后按‘m’鍵高亮,進一步分析問題。

對于Android 5.0(API level 21)或者更高的設備,該問題主要聚焦在UI Thread和Render Thread這兩個線程當中。對于更早的版本,則所有工作在UI Thread。

4.2 Alerts

Systrace能自動分析trace中的事件,并能自動高亮性能問題作為一個Alerts,建議調試人員下一步該怎么做。

比如對于丟幀是,點擊黃色或紅色的Frames圓點便會有相關的提示信息;另外,在systrace的最右上方,有一個Alerts tab可以展開,這里記錄著所有的的警告提示信息。

五、快捷操作

5.1 導航操作

導航操作 作用
w 放大,[+shift]速度更快
s 縮小,[+shift]速度更快
a 左移,[+shift]速度更快
d 右移,[+shift]速度更快

5.2 快捷操作

常用操作 作用
f 放大當前選定區域
m 標記當前選定區域
v 高亮VSync
g 切換是否顯示60hz的網格線
0 恢復trace到初始態,這里是數字0而非字母o
一般操作 作用
h 切換是否顯示詳情
/ 搜索關鍵字
enter 顯示搜索結果,可通過← →定位搜索結果
` 顯示/隱藏腳本控制臺
? 顯示幫助功能

對于腳本控制臺,除了能當做記事本的功能,目前還不清楚有啥功能,或許還在開發中。

5.3 模式切換

  • Select mode: 雙擊已選定區能將所有相同的塊高亮選中;(對應數字1)
  • Pan mode: 拖動平移視圖(對應數字2)
  • Zoom mode:通過上/下拖動鼠標來實現放大/縮小功能;(對應數字3)
  • Timing mode:拖動來創建或移除時間窗口線。(對應數字4)

可通過按數字1~4,用于切換鼠標模式; 另外,按住alt鍵,再滾動鼠標滾輪能實現放大/縮小功能。

Reference:

  • https://developer.android.com/studio/profile/systrace-commandline.html
  • https://developer.android.com/studio/profile/systrace.html
  • http://gityuan.com/2016/01/17/systrace/

原文地址:?http://maoao530.github.io/2017/02/06/systrace/

總結

以上是生活随笔為你收集整理的理解和使用systrace的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 狠狠插影院 | 456av| 婷婷爱爱| 国产男人搡女人免费视频 | 国产精品二区一区二区aⅴ 一卡二卡三卡在线观看 | 久久国产劲爆∧v内射 | 国产精品搬运 | 97在线免费公开视频 | 精品www久久久久久奶水 | 最好看的电影2019中文字幕 | 丰满人妻一区二区三区四区 | 后进极品美女圆润翘臀 | 亚洲欧美在线观看视频 | 日韩少妇av| 看免费黄色大片 | 欧洲成人在线观看 | 久热青草 | 强睡邻居人妻中文字幕 | 久久久久久网站 | 午夜精品99 | 荷兰女人裸体性做爰 | av自拍网| 精品一区二区久久 | 亚欧美色图 | 亚洲不卡在线 | 91中文字幕在线视频 | 日韩欧av | 波多野结衣亚洲一区二区 | www.亚洲在线| 四川一级毛毛片 | 亚洲国产成人久久 | 99成人在线视频 | 天堂福利在线 | 男人久久天堂 | 亚洲精品资源在线 | 精品无码国产一区二区三区av | 专干中国老太婆hd | 日韩中文字幕网站 | 欧美99 | 韩国成人免费视频 | 国产成人精品免费看视频 | 成人h动漫精品一区二区下载 | 综合激情五月婷婷 | 哈利波特3在线观看免费版英文版 | 厕拍极品| 国产一级黄色大片 | japansexxxxhd医生 夜夜操导航 | 亚洲社区一区二区 | 久久夜靖品2区 | 一区二区三区在线观看 | 一区二区三区四区在线观看视频 | 美女流白浆视频 | 亚洲天堂午夜 | 女同动漫免费观看高清完整版在线观看 | 三级网站免费 | 公侵犯人妻一区二区 | 国产乱淫精品一区二区三区毛片 | 花房姑娘免费观看全集 | 久久久综合 | 欧美一级片网站 | 日本网站在线播放 | jizz日本女人 | 综合在线一区 | 日韩三级国产精品 | 国产成人在线视频 | 手机免费av片 | 男人插入女人阴道视频 | 国产精品成人无码 | 97精品人妻麻豆一区二区 | 婷婷开心激情 | 亚洲私人网站 | 原创少妇半推半就88av | 日韩激情视频在线 | 亚洲男人天堂影院 | 秋霞视频在线观看 | 国产人妖在线播放 | 亚洲爱v | 天天射天天舔 | 玩弄丰满少妇xxxxx性多毛 | 久久国产精品一区二区 | 另类视频一区 | 亚洲女成人图区 | www.好了av | 欧洲成人免费视频 | 用力抵着尿进去了h | av在线网站观看 | 久久精品欧美一区 | 天堂网中文在线观看 | 久久99精品国产麻豆婷婷 | 鲁丝片一区二区三区 | 国产精品嫩草av | 欧美高清videos高潮hd | 少妇婷婷 | 永久免费看mv网站入口78 | 三级少妇 | av网站大全在线观看 | 成人性生交视频免费观看 | 天堂av中文 | 啪啪视屏 |