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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

Android性能调优工具TraceView

發布時間:2024/8/1 Android 50 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Android性能调优工具TraceView 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Android自帶的TraceView堪比java的性能調優工具visualvm線程視圖,可以方便的查看線程的執行情況,某個方法執行時間、調用次數、在總體中的占比等,從而定位性能點。

1、生成日志,運行TraceView

運行TraceView有兩種方式

a、調用Debug類

在開始調試的地方,如Activity的OnCreate函數,添加

Debug.startMethodTracing("tracefilename");

結束調試的地方,如Activity的OnCreate函數,添加

Debug.stopMethodTracing();

之后運行你的app一段時間并退出會在sd卡根目錄生成tracefilename.trace這個log文件,記錄這段時間內的運行信息。
將日志文件pull到PC端,cmd到android sdk tools文件夾內(或綁定sdk tools目錄到系統path內),運行traceview tracefilename.trace即可打開TraceView分析界面,如下

這種方式可以隨意開始和結束調試的位置,所以適合具體代碼的性能排查。find貌似只支持小寫,所以如果查找JsonObject需要輸入jsonobject

b、使用DDMs

打開devices窗口,選擇某個進程,點擊右上角的start method profiling

? ? ? ? ? ? ? ? ? ? ?

運行app一段時間后,再點擊已變成stop method profiling的該按鈕。eclipse會自動彈出debug的標簽(可通過菜單File->save as保存數據)。界面同上面。

這種方式不需要修改代碼,所以對于沒有源碼的程序同樣可以進行排查。同時可以方便的進行全局性能排查

2、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與總調用次數的比例。查看每次調用的耗時,一般可通過簡單此項確定每個函數的性能。

3、其他調優工具

(1) dmtracedump

sdk tools下的另外一個工具dmtracedump可用于生成上述log文件內的函數調用關系圖,不過在windows上稍微大點的文件即或報錯

(2) visualvm

看到ddms提供了dump hprof file的功能,本來準備生成hprof文件用visualvm打開試試,結果一直打不開..

在銀狐的幫忙下,發現android sdk tools dump的hprof需要經過sdk tools下的hprof-conv轉換為標準的hprof文件,才能通過visualvm或eclipse的MemoryAnalyzer打開進行分析,之后就同java一樣了。hprof-conv格式為

hprof-conv <infile> <outfile>

總結

以上是生活随笔為你收集整理的Android性能调优工具TraceView的全部內容,希望文章能夠幫你解決所遇到的問題。

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