簡介
iOS下(xià)內(nèi)存管理的基本思想就是引用計數(shù),通(tōng)過對象的引用計數(shù)來對內(nèi)存對象的生命周期進行(xíng)控制。具體到編程時(shí)間(jiān)方面,主要(yào)有兩種方式:
1:MRR(manual retain-release),人(rén)工(gōng)引用計數(shù),對象的生成、銷毀、引用計數(shù)的變化都(dōu)是由開(kāi)發人(rén)員(yuán)來完成。
2:ARC(Automatic Reference Counting),自(zì)動引用計數(shù),隻負責對象的生成,其他(tā)過程開(kāi)發人(rén)員(yuán)不再需要(yào)關心其銷毀,使用方式類似于垃圾回收,但(dàn)其實質還是引用計數(shù)。
面臨的問(wèn)題
根據蘋果說明(míng)文檔,面臨的兩個主要(yào)問(wèn)題是:
釋放或覆蓋的數(shù)據仍然在使用。這(zhè)将造成內(nèi)存損壞,通(tōng)常在應用程序崩潰,或者更糟,損壞用戶數(shù)據。
不釋放不再使用的數(shù)據會導緻內(nèi)存洩漏。分配的內(nèi)存,內(nèi)存洩漏不會釋放,即使它從(cóng)來沒有再次使用。洩漏會導緻應用程序的內(nèi)存使用量日益增加,這(zhè)反過來又可(kě)能(néng)會導緻系統性能(néng)較差或死機。
內(nèi)存管理規則
我們創建自(zì)己的對象,當他(tā)們不再需要(yào)的時(shí)候,釋放他(tā)們。
保留需要(yào)使用的對象。如(rú)果沒有必要(yào)必須釋放這(zhè)些對象。
不要(yào)釋放我們沒有擁有的對象。
使用內(nèi)存管理工(gōng)具
可(kě)以用Xcode工(gōng)具儀器的幫助下(xià)分析內(nèi)存的使用情況。它包括的工(gōng)具有活動監視(shì)器,分配,洩漏,僵屍等
分析內(nèi)存分配的步驟
1. 打開(kāi)一(yī)個現有的應用程序。
2. 選擇産品。
3. 選擇 Allocations 和(hé) Profile。
4. 我們可(kě)以看(kàn)到不同對象的內(nèi)存使用情況
5. 你可(kě)以切換視(shì)圖控制器查看(kàn)內(nèi)存是否釋放。
6. 同樣我們可(kě)以使用 Activity Monitor 來查看(kàn)內(nèi)存在應用程序中的分配的情況。
7. 這(zhè)些工(gōng)具可(kě)以幫助我們了(le)解內(nèi)存的使用情況及在什麽地(dì)方可(kě)能(néng)發生洩漏。
網站建設開(kāi)發|APP設計開(kāi)發|小程序建設開(kāi)發