您好,登錄后才能下訂單哦!
一、介紹
TraceView是一款性能分析工具,可以進(jìn)行數(shù)據(jù)采集和分析,可以以圖形化的方式讓我們了解要跟蹤的程序并且能得到相關(guān)method。本文只講解在app啟動時候TraceView的功能,當(dāng)然,對于app運(yùn)行過程中出現(xiàn)的卡頓,延遲現(xiàn)象,也可以進(jìn)行分析。
TraceView主要是分析方法的運(yùn)行時間以及被調(diào)用的次數(shù),在app啟動過程中,如果方法花費(fèi)的時間過長,超過了繪制屏幕第一幀的時間(16ms),就會出現(xiàn)卡頓、甚至ANR(no response)等問題。
TraceView采集數(shù)據(jù)有兩種方法,一種是通過調(diào)用debug類,在你要跟蹤的地方調(diào)用Debug.startMethodTracing方法,結(jié)束的地方再次調(diào)用即可(此處不作重點(diǎn)介紹);還有一種方法是直接通過DDMS里面的start method profiling實(shí)現(xiàn)(對于冷啟動無法采集)
二、實(shí)例講解
現(xiàn)在開始講start method profiling方法。
如圖,在DDMS里面選擇進(jìn)程(冷啟動無進(jìn)程可選,所以只能檢查熱啟動(進(jìn)程還在,只需啟動mainactivity)),點(diǎn)擊start method profiling。
然后彈出的分析方式里面選擇默認(rèn)方式,點(diǎn)擊ok
start method profiling此時變黑,表示正在采集,執(zhí)行相關(guān)app操作,然后再次點(diǎn)擊start method profiling此時變紅,接著彈出如圖采集到的信息
時間面板
時間面板展示了每個線程的執(zhí)行情況,其中的[1]main即為ui主線程。
移動到某個位置可以查看該點(diǎn)對應(yīng)的方法的執(zhí)行信息,點(diǎn)擊方法面板則會選中相應(yīng)的方法。
可以左鍵按住不放選中區(qū)域放大局部精細(xì)查看,不同方法用不同顏色標(biāo)注
方法面板:
方法面板展示了所有方法的執(zhí)行情況,點(diǎn)擊某個方法可以查看在對應(yīng)線程上的執(zhí)行時間區(qū)域,并會顯示其父方法及子方法。
每個方法包括如下信息列,可點(diǎn)擊某列進(jìn)行排序,從而確定產(chǎn)生性能問題的函數(shù):
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都是以毫秒計(jì)算。每列具體含義及作用如下:
a. Incl表示將所有子函數(shù)耗時也計(jì)算在內(nèi),Excl則表示不包括子函數(shù)的調(diào)用時間。對比可以確定耗時操作發(fā)生是自身還是子函數(shù)中。
b. Cpu Time表示占用cpu執(zhí)行的時間,Real Time包括Cpu Time以及等待、切換的時間等,所以一般都大于Cpu Time。對比可以判斷耗時操作是否在cpu執(zhí)行段內(nèi)。
c. 上面四個指標(biāo)對應(yīng)的%表示函數(shù)在總時間的占比。方便查看某個函數(shù)的時間占比。
d. Calls+RecurCalls/Total表示被外部調(diào)用次數(shù)+遞歸次數(shù)/總次數(shù)。可以查看調(diào)用次數(shù)是否符合自己預(yù)期。
e. Cpu Time/Call, Real Time/Call表示總的Cpu Time及Real Time與總調(diào)用次數(shù)的比例。查看每次調(diào)用的耗時,一般可通過簡單此項(xiàng)確定每個函數(shù)的性能。
來張圖更直觀
測試方法:
找出圖中執(zhí)行時間及調(diào)用次數(shù)多的方法,進(jìn)行優(yōu)化
可參考此http://www.cnblogs.com/sunzn/p/3192231.html和https://www.youtube.com/watch?v=gk2G_FAESds&list=PLaYqF7AnyNPcllCrHZFNQrjGTPO8gCb28&index=66
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。