android DDMS method profiling 工具使用分析
Eclipse DDMS 試圖的devices--start method profiling 該選項用來對指定APP內部的具體方法的效能進行分析;
”method profiling“ 點選執行後,圖示右上角加了一個”灰色的點點“;
開啟後選擇自己要檢測的APP 報名,即可測試,啟動APP選擇具體的頁面;如果要精確跟蹤APP內部的某個子頁面,可以先啟動APP,然後點選”method profiling“的啟動按鈕,就可精確分析APP內部具體的某個子頁面;
啟動”method profiling“ 按鈕的截圖;
形式執行後的效果圖;
常用欄位的屬性說明如下:
列名 描述
Name 該執行緒執行過程中所呼叫的函式名
Incle Cpu Time 某函式佔用的CPU時間,包含內部呼叫其他函式的CPU時間
Excl Cpu Time 某函式佔用的CPU時間,但不含內部呼叫其他函式所佔用的CPU時間
Incl Real Time 某函式執行的真實時間,含呼叫其他函式所佔用的真實時間
Excl Real Time 某函式執行的真實時間,不含呼叫其他函式所佔用的真實時間
Call +Recur Calls/Total 某函式被呼叫次數以及遞迴呼叫佔總呼叫次數的百分比
Cpu Time/Call 某函式呼叫CPU時間與呼叫次數的比,相當於該函式平均執行時間
Real Time/Call 某函式呼叫CPU的真實時間;
TraceView介面資訊介紹
TraceView介面包括時間皮膚和方法皮膚
(1) 時間皮膚(Timeline Panel)
時間皮膚展示了每個執行緒的執行情況,其中的[1]main即為ui主執行緒。
移動到某個位置可以檢視該點對應的方法的執行資訊,點選方法皮膚則會選中相應的方法。
可以左鍵按住不放選中區域放大區域性精細檢視,不同方法用不同顏色標註
(2) 方法皮膚(Profile Panel)
方法皮膚展示了所有方法的執行情況,點選某個方法可以檢視在對應執行緒上的執行時間區域,並會顯示其父方法及子方法。
每個方法包括如下資訊列,可點選某列進行排序,從而確定產生效能問題的函式:
Incl Cpu Time, Excl Cpu Time, Incl Real Time, Excl Real Time, Incl Cpu Time%, Excl Cpu Time%, Incl Real Time%, Excl Real Time%, Calls+RecurCalls/Total, Cpu Time/Call, Real Time/Call
所有的Time都是以毫秒計算。每列具體含義及作用如下:
a. Incl表示將所有子函式耗時也計算在內,Excl則表示不包括子函式的呼叫時間。對比可以確定耗時操作發生是自身還是子函式中。
b. Cpu Time表示佔用cpu執行的時間,Real Time包括Cpu Time以及等待、切換的時間等,所以一般都大於Cpu Time。對比可以判斷耗時操作是否在cpu執行段內。
c. 上面四個指標對應的%表示函式在總時間的佔比。方便檢視某個函式的時間佔比。
d. Calls+RecurCalls/Total表示被外部呼叫次數+遞迴次數/總次數。可以檢視呼叫次數是否符合自己預期。
e. Cpu Time/Call, Real Time/Call表示總的Cpu Time及Real Time與總呼叫次數的比例。檢視每次呼叫的耗時,一般可通過簡單此項確定每個函式的效能。
相關文章
- Metasploit profiling工具的利用
- Android Note - 使用構建分析工具Android
- Android耗電分析之Battery Historian工具使用AndroidBAT
- pandas-profiling資料分析預覽
- android效能分析工具systraceAndroid
- Android 效能分析工具之TraceViewAndroidView
- Profiling an Assembly Program
- MySQL profiling剖析SQLMySql
- Android除錯工具Genymotion的使用Android除錯
- Android Studio Profiler Memory (記憶體分析工具)的簡單使用及問題Android記憶體
- 【譯】Database Profiling with Visual StudioDatabase
- 11 replace-method標籤使用
- 10 lookup-method標籤使用
- perf效能分析工具使用分享
- 方法引用(Method reference)和invokedynamic指令詳細分析
- bundletool工具使用(Android aab包安裝)Android
- Attempt to invoke virtual method ‘int android.view.View.getImportantForAccessibility()‘ on a null obAndroidViewImportNull
- MySQL explain 和 profiling 詳解MySqlAI
- Numerical Results of RhDYas CG method and RhLHas CG method
- 使用Android Profile做效能分析及優化Android優化
- 通過 Battery Historian 工具分析 Android APP 耗電情況BATAndroidAPP
- Kernel Method
- Swizzling Method
- Greedy Method
- MySQL-09.效能分析工具的使用MySql
- java.lang.NullPointerException: Attempt to invoke virtual method 'int android.content.Intent.getI...JavaNullExceptionAndroidIntent
- flutter和Android混編下出現“No implementation found for method xxxx on channel”錯誤FlutterAndroid
- Android dp方式的螢幕適配工具使用(Android Studio外掛方式)Android
- Android Studio工具Android
- Android之Retrofit報錯Form-encoded method must contain at least one @Field.AndroidORMAIAST
- Unity效能分析(一)流程與工具的使用Unity
- 介面工具使用分析(apipost、jmeter、postman、swagger等)APIJMeterPostmanSwagger
- Two Pointer Method
- 使用metabase做分析報表工具分析整體策略績效
- 使用Red5-Pro Android官方Demo拆解分析(一)Android
- Android入門教程 | Handler,Looper與MessageQueue使用與分析AndroidOOP
- mongodb profiling慢請求監控日誌MongoDB
- 有限元分析與應用 | Finite Element Method (FEM) Analysis and ApplicationsAPP