簡體   English   中英

Android Eclipse:Traceview,我只是不明白

[英]Android Eclipse: Traceview, I just don't get it

我只是沒有得到traceview輸出的各種元素,我找不到教程。 有人可以參考下圖解釋以下內容:

在此輸入圖像描述

  1. 條形的寬度對應於函數所用的時間。 高度對應的是什么?
  2. 包容性和獨家性之間有什么具體區別。 我認為包容性包括所有兒童功能的召喚?
  3. 這是真的:(每次通話時間調用的時間)=程序運行的時間(異步任務怎么樣?)
  4. 在主線程上調試減速時,是否可以忽略異步任務?
  5. Excl%中所有百分比的總和應該等於100%嗎?
  6. 當有間隙時(白色在黑色中間)會發生什么? 這是當其他android進程正在運行時,或者只是你自己的異步任務(看起來一個中的間隙與另一個中的填充部分對齊,如果那樣的情況那么將密集型任務移動到AsyncTask中有任何意義)?

(我會在@ ron的回答中添加這個作為評論,但我的聲譽仍然不高,我可以發表評論;))。

自2011年7月起,由於Jeff Brown的代碼更改,您實際上可以獲得traceview和VMDebug,以便為您提供掛鍾時間和CPU使用時間。 我擔心必要的權限需要root設備。 這也導致跟上面的tjb稍微不同的跟蹤視圖窗口。

http://git.insignal.co.kr/?p=mirror/aosp/platform/dalvik.git;a=commitdiff;h=9f640af99bebc6e96f6e1e9903557e2c8f567483

TLDR; adb shell setprop dalvik.vm.extra-opts -Xprofile:dualclock並重啟你的設備。

HRM,因為我在技術上應該幫助回答這個問題:

  1. 我對條形高度的理解是它與父函數有關。 假設a()調用b()。 然后a()正在運行,而b()也在運行。 當b()運行時,traceview將顯示b的顏色; 但是當a運行時(即excl時間)它將繪制一個顏色,並且它將繪制一個略高於b的條形的條形圖。 至少,這絕對是你放大時的工作方式; 如果你點擊相應較高欄的功能,它會將括號放在靠近它的小欄下方,表明父母負責所有這些; 父母總是顯示為較高的欄。

  2. 是的:)。 包含是執行函數所花費的時間或該函數調用的任何東西; Exclusive是'不包括被調用函數',只是在函數中花費的時間(或切換到/退出它)。

  3. 只為了我認為你所暗示的頂層; 甚至那時看@ ron的答案 - 這是cpu使用時間,而不是掛鍾時間。 AsyncTasks在主線程中運行,因此將被包含在頂層故障中的某處。 處理程序相同

  4. 埃里克回答

  5. 不,因為向上/向下舍入(即1.87%將顯示為1.9%); 但“獨家”中條目的總和應加起來在右上角顯示的總時間,這與為您的問題計算的數字相同(3)

  6. 埃里克回答

我無法回答你的所有問題,但我可以說......

對於#4 no,你正在運行一個核心處理器(或至少模擬一個),因此他們自己的線程上的異步任務必須中斷主線程以獲得處理時間。 任何時候另一個線程執行將在主線程上“減速”,所以你應該看着它。

對於#6,您在主線程執行跟蹤中看到的那些差距與您的asynctask獲取處理器時間的時間完全相關。 同樣,單核,一次只能做1個線程。 在這個時間片中,它看起來不像任何其他進程有任何處理器時間,但這些線程仍然在后台休眠。 由於這是(可能)一個模擬器,這很常見。 在實時手機上你會看到更多:)

我也非常確定#1線程執行中每個尖峰的高度是%處理器利用率。 例如,主線程的“黑色”區域是系統空閑的。 編輯:好的,我現在肯定。 就是這樣。 所以在你的主線程中,那個粉紅色的區域是100%處理器利用率。

關於traceview圖的另一個重要技術訣竅(如此處所述 ):traceview顯示的時間不是真實的掛鍾時間,而是使用CPU時間。

例如,通過減小FPS,跟蹤視圖的形狀可能不會改變,因為它不包括空閑占空比。 因此,在測量性能時,還建議運行應用程序一段固定的時間(10秒,60秒等),並檢查100%包含呼叫所用的時間是否比以前低。

谷歌剛剛在Udacity上發布了關於Android性能的精彩課程。 這個模塊提供了Traceview的演練 ,以及視頻模塊下面的鏈接到他們的課程指南,其中深入介紹了Traceview的使用。 查看這些內容將回答您的大部分問題。 我強烈建議你看看吧!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM