iOS 底層原理39:Instruments系列(一)Instruments介紹

前言

通常程序運行時常見的錯誤大致分為兩類

  • 用戶使用引起的外部錯誤嗤栓,例如缺少參數(shù)、參數(shù)錯誤等

  • 程序運行時產(chǎn)生的內(nèi)部錯誤箍邮,例如內(nèi)存溢出茉帅、空指針、以0做除數(shù)等

針對第一種外部錯誤锭弊,一般是不可控的堪澎,因為用戶的行為是隨機的,所以一般只能采取相應(yīng)的預(yù)防措施味滞,盡最大程度去避免這類問題

針對第二種內(nèi)部錯誤樱蛤,可以通過一些工具及時的找出問題并修正。這里就不得不提及Xcode自帶的檢測調(diào)試工具Instruments了剑鞍。

介紹

Instruments是一個非常靈活刹悴、且強大的工具,可以進行性能分析攒暇、動態(tài)追蹤土匀、代碼分析等,讓我們對程序的內(nèi)部運行更加了解形用。主要可以做以下事情:

  • 用于動態(tài)調(diào)追蹤和分析OS X和iOS的代碼的性能分析和測試工具

  • 支持多線程調(diào)試

  • 支持錄制和回放圖形界面的操作過程

  • 追蹤代碼中的問題(甚至是難以復(fù)現(xiàn)的)

  • 分析程序的性能

  • 實現(xiàn)程序的自動化測試

  • 部分實現(xiàn)程序的壓力測試

  • 執(zhí)行系統(tǒng)級別的通用問題最終調(diào)試

打開方式有以下三種:

  • 快捷鍵:CMD + I(對應(yīng)小寫的i)

  • Xcode -> Open Developer Tool -> Instruments

  • 項目 -> Product -> Profile

Instruments具體的界面如下所示


Instruments界面
  • Blank:創(chuàng)建一個空的模板就轧,可以自定義添加各種工具

  • Activity Monitor:跟蹤整個系統(tǒng)的活動,包括 CPU田度、內(nèi)存妒御、網(wǎng)絡(luò)和磁盤。默認情況下镇饺,活動監(jiān)視器模板不會在時間線窗格中顯示網(wǎng)絡(luò)或磁盤活動

  • Allocations:使用Allocations和VM Tracker工具來測量應(yīng)用程序中的常規(guī)和虛擬內(nèi)存使用情況

  • Animation Hitches:用于檢測滾動和動畫問題乎莉,以幫助您可視化和研究應(yīng)用程序的圖形管道。通俗來講就是檢測界面流暢度,是否有卡頓情況

  • App Launch:使用 5 秒時間配置文件和線程狀態(tài)跟蹤調(diào)整應(yīng)用程序啟動性能

  • Core Data:可以檢測應(yīng)用程序中數(shù)據(jù)的存儲交互惋啃,例如數(shù)據(jù)提取哼鬓、緩存缺失和存儲等

  • CPU Counters:收集使用時間或基于事件的抽樣方法的性能監(jiān)控計數(shù)器(PMC)事件,使用 Counters 工具來跟蹤 PMC 事件边灭。

  • CPU Profiler:用于分析 CPU 工作負載的基于周期的分析器异希,使用硬件性能監(jiān)控中斷(PMI)來提供更穩(wěn)定的測量,無論代碼是在性能 CPU 還是效率 CPU 上運行

  • File Activity:用于檢查系統(tǒng)文件的使用情況绒瘦,可以檢查文件的打開称簿、關(guān)閉、讀和寫操作惰帽,同時也可以檢測文件系統(tǒng)本身的改變憨降,包括權(quán)限和所有權(quán)發(fā)生的改變。

  • Game Performance:用于檢測游戲性能和幀率

  • Leaks:用來檢測內(nèi)存的泄漏

  • Logging:來自統(tǒng)一日志系統(tǒng)的日志和路標的可視化该酗。用于導(dǎo)入日志存檔文件的默認模板

  • Metal System Trace:是apple 2014年在ios平臺上推出的高效底層的3D圖形API券册,它通過減少驅(qū)動層的API調(diào)用CPU的消耗提高渲染效率。

  • Network:使用連接工具來分析iOS應(yīng)用程序的TCP/IP和UDP/IP連接

  • SceneKit:檢測的app是使用了screenKit垂涯。用于確定每一幀的工作類型烁焙,例如動畫、物理耕赘、場景剔除和渲染骄蝇。

  • SwiftUI:SwiftUI分析工具,用于跟蹤視圖類型的 .body 調(diào)用操骡、動態(tài)視圖屬性隨時間的更新以及識別慢幀

  • System Trace:操作系統(tǒng)中事件發(fā)生的全視圖九火。了解線程是如何跨 CPU 調(diào)度的,并了解系統(tǒng)調(diào)用和虛擬內(nèi)存故障如何影響應(yīng)用程序的性能

  • Time Profiler:使用時間分析器工具對系統(tǒng)CPU上運行的進程執(zhí)行低開銷册招、基于時間的采樣岔激。隨著時間的推移,多核和線程的使用效率越高是掰,應(yīng)用程序的性能就越好虑鼎。時間分析器工具中的CPU和線程策略顯示了應(yīng)用程序?qū)?nèi)核和線程的利用程度。

  • Zombies:使用分配工具來測量應(yīng)用程序中的一般內(nèi)存使用情況键痛,重點是檢測過度釋放的“zombie”對象炫彩,即在釋放后調(diào)用的對象,這些對象不再存在絮短。

其中常用的是以下幾種江兢,后續(xù)會分別介紹如何使用及自定義

  • Allocation

  • Animation Hitches

  • App Launch

  • Leaks

  • Network

  • Time Profiler:

  • Zombies

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市丁频,隨后出現(xiàn)的幾起案子杉允,更是在濱河造成了極大的恐慌邑贴,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,402評論 6 499
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件叔磷,死亡現(xiàn)場離奇詭異拢驾,居然都是意外死亡,警方通過查閱死者的電腦和手機世澜,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,377評論 3 392
  • 文/潘曉璐 我一進店門独旷,熙熙樓的掌柜王于貴愁眉苦臉地迎上來署穗,“玉大人寥裂,你說我怎么就攤上這事“钙#” “怎么了封恰?”我有些...
    開封第一講書人閱讀 162,483評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長褐啡。 經(jīng)常有香客問我诺舔,道長,這世上最難降的妖魔是什么备畦? 我笑而不...
    開封第一講書人閱讀 58,165評論 1 292
  • 正文 為了忘掉前任低飒,我火速辦了婚禮,結(jié)果婚禮上懂盐,老公的妹妹穿的比我還像新娘褥赊。我一直安慰自己,他們只是感情好莉恼,可當我...
    茶點故事閱讀 67,176評論 6 388
  • 文/花漫 我一把揭開白布拌喉。 她就那樣靜靜地躺著,像睡著了一般俐银。 火紅的嫁衣襯著肌膚如雪尿背。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,146評論 1 297
  • 那天捶惜,我揣著相機與錄音田藐,去河邊找鬼。 笑死吱七,一個胖子當著我的面吹牛坞淮,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播陪捷,決...
    沈念sama閱讀 40,032評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼回窘,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了市袖?” 一聲冷哼從身側(cè)響起啡直,我...
    開封第一講書人閱讀 38,896評論 0 274
  • 序言:老撾萬榮一對情侶失蹤烁涌,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后酒觅,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體撮执,經(jīng)...
    沈念sama閱讀 45,311評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,536評論 2 332
  • 正文 我和宋清朗相戀三年舷丹,在試婚紗的時候發(fā)現(xiàn)自己被綠了抒钱。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,696評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡颜凯,死狀恐怖谋币,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情症概,我是刑警寧澤蕾额,帶...
    沈念sama閱讀 35,413評論 5 343
  • 正文 年R本政府宣布,位于F島的核電站彼城,受9級特大地震影響诅蝶,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜募壕,卻給世界環(huán)境...
    茶點故事閱讀 41,008評論 3 325
  • 文/蒙蒙 一调炬、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧舱馅,春花似錦缰泡、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至资溃,卻和暖如春武翎,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背溶锭。 一陣腳步聲響...
    開封第一講書人閱讀 32,815評論 1 269
  • 我被黑心中介騙來泰國打工宝恶, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人趴捅。 一個月前我還...
    沈念sama閱讀 47,698評論 2 368
  • 正文 我出身青樓垫毙,卻偏偏與公主長得像,于是被迫代替她去往敵國和親拱绑。 傳聞我的和親對象是個殘疾皇子综芥,可洞房花燭夜當晚...
    茶點故事閱讀 44,592評論 2 353

推薦閱讀更多精彩內(nèi)容