使用Instruments分析內(nèi)存

使用Instruments可以監(jiān)測分析app內(nèi)存相關(guān)的 Overall Memory Use、 Leaked Memory、 Abandoned Memory随闺、 Zombies等內(nèi)容。

Paste_Image.png

1、 Allocations
點擊XCode的Product菜單Profile啟動Instruments痴晦,選擇allocation,會自動啟動allocation工具和模擬器琳彩。啟動后誊酌,Allocations面板顯示內(nèi)存中的對象占用曲線,可以顯示目前內(nèi)存中分配了哪些對象露乏,對象的數(shù)量碧浊,以及由哪些函數(shù)進行創(chuàng)建的。

Allocations可以監(jiān)測到app中一般和虛擬內(nèi)存的使用情況瘟仿。統(tǒng)計到的內(nèi)存類別有All Heap & Anonymous VM箱锐、All Heap Allocations、All Anonymous VM劳较。我們無法控制Anonymous VM部分驹止,所以一般只關(guān)注All Heap Allocations。

可以對每個動作的前后進行Generations观蜗,對比內(nèi)存的增加臊恋,查看使內(nèi)存增加的具體的方法和代碼所在位置。具體操作是在右側(cè)Generation Analysis里點擊Mark Generation墓捻,這樣會產(chǎn)生一個Generation抖仅,切換到其他頁面或一段時間產(chǎn)生了另外一個事件時再點Mark Generation來產(chǎn)生一個新的Generation,這樣反復,生成多個Generation撤卢,查看這幾個Generation會看到Growth的大小环凿,如果太大可以點進去查看相應(yīng)占用較大的線程里右側(cè)Heaviest Stack Trace里查看對應(yīng)的代碼塊,然后進行相應(yīng)的處理凸丸。

Paste_Image.png

Detail Pane中統(tǒng)計信息包含的類型:Statistics拷邢、Call Trees、Allocations List屎慢、Generations瞭稼。
1>Statistics統(tǒng)計項:


Paste_Image.png

2>Call Trees統(tǒng)計項:


Paste_Image.png

3>Allocations List統(tǒng)計項:


Paste_Image.png

4>Generations統(tǒng)計項:


Paste_Image.png

2、Zombies
使用Zombies工具來查找僵尸對象: Zombies工具的查找原理其實和設(shè)置NSZombieEnabled環(huán)境變量的調(diào)試方法是一樣的腻惠,啟動Zombies后在內(nèi)部設(shè)置了NSZombieEnabled為true环肘。

啟用了NSZombieEnabled的話,它會用一個僵尸對象來代替已釋放對象集灌。也就是在引用計數(shù)降到0時悔雹,該僵尸實現(xiàn)會將該對象轉(zhuǎn)換成僵尸對象。僵尸對象的作用是在你向它發(fā)送消息時欣喧,就不會向之前那樣Crash或者產(chǎn)生 一個難以理解的行為腌零,而是放出一個錯誤消息,它會顯示一段日志并自動跳入調(diào)試器唆阿, 因此我們就可以找到具體或者大概是哪個對象被錯誤的釋放了益涧。

3、Leaks
啟動Leaks工具后驯鳖,它會在程序運行時記錄內(nèi)存分配信息和檢查是否發(fā)生內(nèi)存泄露闲询。
定位內(nèi)存泄漏問題:點擊Leak Checks時間條的紅色叉,查看某行內(nèi)存泄漏調(diào)用棧浅辙,會直接跳到內(nèi)存泄漏代碼位置扭弧。

Paste_Image.png

Details Pane包含的統(tǒng)計信息有:Leaks、Cycles &Roots记舆、Call Tree鸽捻。
1>Leaks統(tǒng)計項:


Paste_Image.png

2>Cycles&Roots統(tǒng)計項:


Paste_Image.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市泽腮,隨后出現(xiàn)的幾起案子泊愧,更是在濱河造成了極大的恐慌,老刑警劉巖盛正,帶你破解...
    沈念sama閱讀 216,997評論 6 502
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異屑埋,居然都是意外死亡豪筝,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,603評論 3 392
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來续崖,“玉大人敲街,你說我怎么就攤上這事⊙贤” “怎么了多艇?”我有些...
    開封第一講書人閱讀 163,359評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長像吻。 經(jīng)常有香客問我峻黍,道長,這世上最難降的妖魔是什么拨匆? 我笑而不...
    開封第一講書人閱讀 58,309評論 1 292
  • 正文 為了忘掉前任姆涩,我火速辦了婚禮,結(jié)果婚禮上惭每,老公的妹妹穿的比我還像新娘骨饿。我一直安慰自己,他們只是感情好台腥,可當我...
    茶點故事閱讀 67,346評論 6 390
  • 文/花漫 我一把揭開白布宏赘。 她就那樣靜靜地躺著,像睡著了一般黎侈。 火紅的嫁衣襯著肌膚如雪察署。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,258評論 1 300
  • 那天蜓竹,我揣著相機與錄音箕母,去河邊找鬼。 笑死俱济,一個胖子當著我的面吹牛嘶是,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播蛛碌,決...
    沈念sama閱讀 40,122評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼聂喇,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了蔚携?” 一聲冷哼從身側(cè)響起希太,我...
    開封第一講書人閱讀 38,970評論 0 275
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎酝蜒,沒想到半個月后誊辉,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,403評論 1 313
  • 正文 獨居荒郊野嶺守林人離奇死亡亡脑,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,596評論 3 334
  • 正文 我和宋清朗相戀三年堕澄,在試婚紗的時候發(fā)現(xiàn)自己被綠了邀跃。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,769評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡蛙紫,死狀恐怖拍屑,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情坑傅,我是刑警寧澤僵驰,帶...
    沈念sama閱讀 35,464評論 5 344
  • 正文 年R本政府宣布,位于F島的核電站唁毒,受9級特大地震影響蒜茴,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜枉证,卻給世界環(huán)境...
    茶點故事閱讀 41,075評論 3 327
  • 文/蒙蒙 一矮男、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧室谚,春花似錦毡鉴、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,705評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至入篮,卻和暖如春陈瘦,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背潮售。 一陣腳步聲響...
    開封第一講書人閱讀 32,848評論 1 269
  • 我被黑心中介騙來泰國打工痊项, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人酥诽。 一個月前我還...
    沈念sama閱讀 47,831評論 2 370
  • 正文 我出身青樓鞍泉,卻偏偏與公主長得像,于是被迫代替她去往敵國和親肮帐。 傳聞我的和親對象是個殘疾皇子咖驮,可洞房花燭夜當晚...
    茶點故事閱讀 44,678評論 2 354

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