打開Allocations
1.首先,將程序安裝到模擬機或真機上;
2.點擊Product,再點擊Profile,打開Instruments
3.選擇Allocations
4.先選擇程序,再開始錄制(開始錄制會自動開啟程序)
錄制過程:
All Heap & Anonymous VM: 實際用到的內(nèi)存和操作系統(tǒng)分配的匿名虛擬內(nèi)存。
Anonymous VM(匿名虛擬內(nèi)存)是系統(tǒng)為程序預(yù)留的、可能會立即被重復(fù)使用的一部分可用內(nèi)存。
如果不想看到匿名虛擬內(nèi)存,可以在Display Settings設(shè)置:
監(jiān)控場景:UIImage加載圖片
監(jiān)控發(fā)現(xiàn):
1.使用imageNamed方法加載圖片:當對象(UIImageView)銷毀,圖片對象不會隨著一起銷毀。
缺:加載的圖片占據(jù)的內(nèi)存較大;
優(yōu):相同的的圖片只會加載一份到內(nèi)存中,如果多個對象同時使用,使用同一個圖片對象即可。
2.使用imageWithContentsOfFile方法加載圖片:當對象(UIImageView)銷毀,圖片對象會隨著一起銷毀。
優(yōu):加載的圖片占據(jù)的內(nèi)存較小。
缺:相同的圖片會多次加載到內(nèi)存中,如果多個對象同時使用,使用的是不同的圖片對象。
總結(jié)兩個方法的適用場景:
imageNamed——圖片多個界面要使用,圖片較小、使用頻率高(圖標、小的背景圖)
imageWithContentsOfFile——只在一個地方使用,圖片較大、使用頻率不高(版本新特性、相冊)
【注意】
1.如果修改了程序代碼,想要重新監(jiān)控程序的內(nèi)存分配,首先停止錄制;
2.然后Xcode重新運行一次(重新安裝在模擬機和真機上),再關(guān)閉,再開始錄制;
3.如果不重新安裝再點錄制,監(jiān)控的會是之前的程序。