在App需要進(jìn)行優(yōu)化內(nèi)存使用和優(yōu)化內(nèi)存分配的時(shí)候,找了網(wǎng)絡(luò)上的一些關(guān)于Instruments的資料,發(fā)現(xiàn)都是一些比較舊的資料,于是自己去官網(wǎng)看了一下教程,看了下Instruments這個(gè)App的使用方式,順帶做了一些筆記,拿出來(lái)分享給大家。大家有什么好的建議或者文章有什么錯(cuò)誤,都?xì)g迎在評(píng)論中指出,我會(huì)及時(shí)更正。
對(duì)于Instruments這個(gè)App,它只是用來(lái)幫助找出和定位App中存在的問(wèn)題,至于問(wèn)題的具體解決還是我們自己來(lái)解決的,不過(guò)它也是一把利刃。
1、打開Instruments這個(gè)App,選擇對(duì)應(yīng)的模版,你要調(diào)試的設(shè)備,你準(zhǔn)備優(yōu)化的App,因?yàn)槲沂菧?zhǔn)備查看App的內(nèi)存分配的,所以選擇Allocations模板,點(diǎn)擊Choose確認(rèn)。

2、選擇對(duì)應(yīng)的設(shè)備或者模擬器,選擇對(duì)應(yīng)的App。開始、停止和暫停按鈕如圖所示,時(shí)間線就是你使用Instruments跟蹤分析你App時(shí)候?qū)?yīng)的分析圖形。監(jiān)測(cè)設(shè)置可以配置你需要監(jiān)測(cè)的選項(xiàng)如何配置看具體需求和監(jiān)測(cè)設(shè)置的說(shuō)明。

3、點(diǎn)擊開始監(jiān)測(cè),時(shí)間線部分顯示內(nèi)存分配的示意圖,主要左邊選擇Allocations模板,可以使用右邊的Make Generation功能記錄某個(gè)時(shí)間點(diǎn)的內(nèi)存分配具體信息(打點(diǎn)采樣)。打點(diǎn)采樣之后可以看到一個(gè)采樣數(shù)據(jù)列表。

4、展開打點(diǎn)采用列表中的一項(xiàng),可以看到對(duì)應(yīng)的類名字和對(duì)象數(shù)據(jù),還可以看到方法的調(diào)用棧。當(dāng)你看到這個(gè)類創(chuàng)建了這么多個(gè)對(duì)象的時(shí)候,你也應(yīng)該會(huì)意識(shí)到這里存在一定某種程度的內(nèi)存分配問(wèn)題。右邊可以看到方法調(diào)用??梢哉业綄?duì)應(yīng)的源代碼的大概位置。

5、雙擊對(duì)象查看對(duì)象的具體信息


6、點(diǎn)擊 右邊系統(tǒng)方法調(diào)用棧的某個(gè)方法,查看方法的具體詳情
7、查看方法的匯編代碼。

官方資料對(duì)Instruments這個(gè)app的功能進(jìn)行詳細(xì)介紹,建議需要什么模塊就去看對(duì)應(yīng)的模塊指南,不用從頭到尾看。
如果你覺得我的這篇文章對(duì)你有一丁點(diǎn)兒作用的話,那么希望你能在下方給個(gè)贊哈,讓我知道這文章已經(jīng)起了它應(yīng)該的作用,謝謝!