iOS性能優(yōu)化:Instruments使用實(shí)戰(zhàn)

參考了chenkai 的簡書

本文總結(jié)了包括Time Profiler、leaks、Allocation本人認(rèn)為前兩者使用較多,最后的可僅供參考

Time Profiler的使用

作用:

應(yīng)用程序開始運(yùn)行后.就能獲取到整個(gè)應(yīng)用程序運(yùn)行消耗時(shí)間分布和百分比.

使用Time Profiler的注意事項(xiàng):

必須使用真機(jī),因?yàn)閙acbook上的cpu優(yōu)于iPhone;gpu劣于ipone;

time? profiler使用步驟

在xcode選擇 product--profile得到圖一界面,鐘表為

time profiler

圖一

點(diǎn)擊開始錄制按鈕得到如圖二:


圖二

可以看出圖中包含有調(diào)用系統(tǒng)API所消耗的時(shí)間,這些數(shù)據(jù)對我們來說是無用的,因此我們選擇屏蔽它

選用call tree的Separate Thread和Hide System Libraries得如圖三


圖三

可以看出剔除了反向調(diào)用樹和系統(tǒng)API調(diào)用的數(shù)據(jù)。此時(shí)點(diǎn)擊圖中所示方法,可直接跳轉(zhuǎn)至指定代碼,對耗時(shí)的代碼進(jìn)行優(yōu)化,一般耗時(shí)場景主要為UIImageView播放動畫、NSDateFormatter以及NSCalendar的使用等場景。

相關(guān)名詞注釋:

Separate By Thread:線程分離,只有這樣才能在調(diào)用路徑中能夠清晰看到占用CPU最大的線程.

Invert Call Tree:從上到下跟蹤堆棧信息.這個(gè)選項(xiàng)可以快捷的看到方法調(diào)用路徑最深方法占用CPU耗時(shí),比如FuncA{FunB{FunC}},勾選后堆棧以C->B->A把調(diào)用層級最深的C顯示最外面.

Hide Missing Symbols:如果dSYM無法找到你的APP或者調(diào)用系統(tǒng)框架的話,那么表中將看到調(diào)用方法名只能看到16進(jìn)制的數(shù)值,勾選這個(gè)選項(xiàng)則可以隱藏這些符號,便于簡化分析數(shù)據(jù).

Hide System Libraries:這個(gè)就更有用了,勾選后耗時(shí)調(diào)用路徑只會顯示app耗時(shí)的代碼,性能分析普遍我們都比較關(guān)系自己代碼的耗時(shí)而不是系統(tǒng)的.基本是必選項(xiàng).注意有些代碼耗時(shí)也會納入系統(tǒng)層級,可以進(jìn)行勾選前后前后對執(zhí)行路徑進(jìn)行比對會非常有用.

至此,timer Profiler的使用總結(jié)結(jié)束。

leaks 的使用

打開步驟同profiler相同,不再贅述。

打開后第一部將彈出的界面的statistics改為call trees,如圖四


圖四

不同于time profiler 此時(shí)選Invert Call TreeHide System Libraries

然后點(diǎn)開錄制按鈕

出現(xiàn)紅色錯(cuò)號就說明出現(xiàn)了內(nèi)存泄露,選則左上角的暫停代碼,并用鼠標(biāo)點(diǎn)擊錯(cuò)號得如圖五,


圖五

點(diǎn)擊任意一行得到如圖六


圖六

標(biāo)紅處為內(nèi)存泄露的具體代碼,可對其修改解決

Allocation

參考自IOS性能調(diào)優(yōu)系列:使用Allocation動態(tài)分析內(nèi)存使用情況-愛編程?

Allocation工具可以用來幫你了解內(nèi)存的分配情況

打開方式同上,略過,直接上實(shí)料

打開后我們可以看到右側(cè)(圖七)幾個(gè)比較有用的選項(xiàng)

All Objects Created

Created & Still Living

Created & Destroyed

圖七

通過以上方法可以對應(yīng)用的整體內(nèi)存使用情況有所了解,但內(nèi)存不合理使用導(dǎo)致的內(nèi)存警告往往是部分代碼或視圖導(dǎo)致的,我們往往要關(guān)注于某段時(shí)間或操作過程中內(nèi)存的分配和使用情況,Allocation提供了這種功能。

比如在進(jìn)入一個(gè)視圖前或操作前,我們在Allocation面板左側(cè)點(diǎn)擊Mark Generation,這時(shí)候會產(chǎn)生Generation A節(jié)點(diǎn),顯示內(nèi)存當(dāng)前的情況:

圖8
我們可以在進(jìn)入視圖后再點(diǎn)一次Mark Generation,在視圖退出后再點(diǎn)一次Mark,這樣三次產(chǎn)生的

Generation分別記錄了進(jìn)入前、進(jìn)入后、關(guān)閉后,再最后一個(gè)Generation應(yīng)該內(nèi)存被合理釋放,否則就代表了在這個(gè)視圖或操作中有泄漏或不合理的地方。

以上只是Allocation的基本運(yùn)用,設(shè)計(jì)出一套使用Allocation來合理測試的方案是比較復(fù)雜的,后續(xù)慢慢介紹。


最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 230,501評論 6 544
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 99,673評論 3 429
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事?!?“怎么了?”我有些...
    開封第一講書人閱讀 178,610評論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經(jīng)常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,939評論 1 318
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 72,668評論 6 412
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 56,004評論 1 329
  • 那天,我揣著相機(jī)與錄音,去河邊找鬼。 笑死,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 44,001評論 3 449
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 43,173評論 0 290
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 49,705評論 1 336
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 41,426評論 3 359
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 43,656評論 1 374
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,139評論 5 364
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 44,833評論 3 350
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,247評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,580評論 1 295
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 52,371評論 3 400
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 48,621評論 2 380

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