啓動優化工做選擇

注意點:html

  兩種方式 互相補充python

  正確認識工具及不一樣場景選擇合適 的工具app

 

一、traceview工具:工具

  圖形的形式展現代碼執行時間、調用棧等優化

  信息全面,包含全部線程線程

使用方式:orm

  Debug.startMethodTracing("app");//在application類裏的onCreate()方法最開始點調用 ,參數做爲保存文件的名字,例如:app.tracehtm

  Debut.stopMethodTracing();//在application類裏的onCreate()方法裏結束點調用 blog

生成文件在sd卡:Android/data/packagename/files/xxx.trace排序

文件分析:

 

 

優缺點分析:

traceview 支行時開銷嚴重,總體都會變慢。由於他會把全部線程裏的全部方法都運行一次,以及進行排序。

可能會帶偏優化方向

traceview與cpu profile對比,它能夠經過代碼埋點,能夠準確進行抓取信息,profile則須要在APP啓動那一刻立刻同步啓動,才能看獲得結果。

 

二、systrace工具:

  結合Android內核的數據,生成Html報告

  要求API 18以上使用,爲了兼容版本,推薦TraceCompat

使用方式:

  python systrace.py -t 10[other-options] [categories]

  TraceCompat.beginSection("app");//在application類裏的onCreate()方法最開始點調用 ,參數做爲保存文件的名字,例如:app.trace

  TraceCompat.endSection();//在application類裏的onCreate()方法裏結束點調用 

  在終端運行:

  python /User/Liuzhao.Future/Library/Android/sdk/platform-tools/systrace/systrace.py -b 32768 -t 5 -a com.optimize.performance -o performance.html sched gfx view wm am app

優缺點:

  輕量級,開銷小

  直接反映cpu利用率

cputime 與 c區別:

  優化方向應該看的是cputime的時間,而非 walltime 時間

  walltime 是代碼執行時間,cputime 是代碼消耗cpu的時間(重點指標)

   舉例:鎖衝突 ,致使walltime 消耗時間很是長

相關文章
相關標籤/搜索