Instruments 壹 About Time Profiler

首先,dSYM是什么鬼?

程序編譯后都會生成一個 dSYM 文件。
程序在執(zhí)行中通過地址來調用方法函數(shù)。而 dSYM 文件里存儲了函數(shù)地址映射,這樣調用棧里的地址可以通過 dSYM 這個映射表能夠獲得具體函數(shù)的位置。一般都會用來處理 crash 時獲取到的調用棧 .crash 文件將其符號化。


屏幕快照 2019-07-10 下午4.23.58.png

其次,說到Time Profiler。(要用release版本來profile)

時間分析工具,用來檢測應用CPU的使用情況,可以看到應用程序各個方法消耗的CPU時間。
官方文檔:https://help.apple.com/instruments/mac/current/#/dev03a7149d

  • time profile 是使用采樣的方法來統(tǒng)計,而不是記錄每一個方法調用的起始和結束,采樣間隔是 1 ms。


    image.png

    上圖中,main函數(shù)被采樣 5 次, method3 沒有被采樣,但是確實執(zhí)行了。
    不能區(qū)分長時間運行的任務和重復執(zhí)行的任務。
    關注點是 CPU,而且不會記錄所有操作。比如 method3 沒有被采樣。

  • 查看time profiler結果


    time profiler.jpeg
  1. weight 調用自身和子類花費的時間及占總時間的百分比
    不是實際耗費時間,而是該方法被采樣的次數(shù)乘以采樣間隔;
  2. self weight 自身花費的時間
    該函數(shù)沒有調用其他函數(shù)時,被采樣的次數(shù)乘以采樣間隔;
  3. 如果weight = self weight,則說明該函數(shù)沒有調用其它函數(shù);
  4. Symbol name 被調用的函數(shù)名
image.png

image.png
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。
禁止轉載,如需轉載請通過簡信或評論聯(lián)系作者。

友情鏈接更多精彩內容