MRC、ARC內(nèi)存管理機(jī)制

MRC、ARC內(nèi)存管理機(jī)制?(為什么要進(jìn)行內(nèi)存管理, 內(nèi)存管理的范圍和對(duì)象, 內(nèi)存管理的原理)

** (為什么)
因?yàn)橐苿?dòng)設(shè)備的內(nèi)存極其有限,當(dāng)一個(gè)程序達(dá)到40M時(shí), 系統(tǒng)會(huì)發(fā)出內(nèi)存警告. 當(dāng)程序達(dá)到120M時(shí), 程序會(huì)閃退, 影響用戶(hù)體驗(yàn). 為了保證程序的運(yùn)行流暢, 必須進(jìn)行內(nèi)存管理

**(管理的范圍及對(duì)象)
管理所有繼承自NSObject的對(duì)象, 對(duì)基本數(shù)據(jù)類(lèi)型無(wú)效. 是因?yàn)閷?duì)象和其他數(shù)據(jù)類(lèi)型在系統(tǒng)中存儲(chǔ)的空間不一樣, 其他局部變量主要存儲(chǔ)在棧區(qū)(因?yàn)榛緮?shù)據(jù)類(lèi)型占用的存儲(chǔ)空間是固定的, 一般存放于棧區(qū) ), 而對(duì)象存儲(chǔ)于堆中, 當(dāng)代碼塊結(jié)束時(shí), 這個(gè)代碼塊所涉及到的所有局部變量會(huì)自動(dòng)清空,指向?qū)ο蟮闹羔樢矔?huì)被回收, 這時(shí)對(duì)象就沒(méi)有指針指向, 但依然存在于堆內(nèi)存中, 造成內(nèi)存泄露.

**(內(nèi)存管理的原理)
MRC下,oc內(nèi)存管理遵循“誰(shuí)創(chuàng)建、誰(shuí)釋放、誰(shuí)引用、誰(shuí)管理”的機(jī)制,當(dāng)創(chuàng)建或引用一個(gè)對(duì)象時(shí),需要向她發(fā)送alloc,copy,retain消息,當(dāng)釋放該對(duì)象時(shí)需要發(fā)送release消息,當(dāng)引用計(jì)數(shù)為零的時(shí)候,系統(tǒng)釋放該對(duì)象。
ARC是自動(dòng)引用計(jì)數(shù),管理機(jī)制與手動(dòng)機(jī)制一樣,只是不再需要調(diào)用retain,release,autorelease,它會(huì)在適當(dāng)?shù)奈恢貌迦雛elease和autorelease。使用ARC不代表不需要內(nèi)存管理了,例如使用block時(shí)要避免循環(huán)引用,代理作為屬性時(shí),要用弱指針指引。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 內(nèi)存管理 簡(jiǎn)述OC中內(nèi)存管理機(jī)制。與retain配對(duì)使用的方法是dealloc還是release,為什么?需要與a...
    丶逐漸閱讀 2,080評(píng)論 1 16
  • iOS內(nèi)存管理 概述 什么是內(nèi)存管理 應(yīng)用程序內(nèi)存管理是在程序運(yùn)行時(shí)分配內(nèi)存(比如創(chuàng)建一個(gè)對(duì)象,會(huì)增加內(nèi)存占用)與...
    蚊香醬閱讀 5,812評(píng)論 8 119
  • 為什么進(jìn)行內(nèi)存管理? 由于移動(dòng)設(shè)備的內(nèi)存極其有限,所以每個(gè)APP所占的內(nèi)存也是有限制的,當(dāng)app所占用的內(nèi)存較多時(shí)...
    天天想念閱讀 976評(píng)論 1 6
  • MRC下,oc內(nèi)存管理遵循“誰(shuí)創(chuàng)建、誰(shuí)釋放、誰(shuí)引用、誰(shuí)管理”的機(jī)制,當(dāng)創(chuàng)建或引用一個(gè)對(duì)象時(shí),需要向她發(fā)送alloc...
    金歌漫舞閱讀 358評(píng)論 0 0
  • 《我的前半生》落下了帷幕,或許后來(lái)的劇情太過(guò)狗血,所以招來(lái)了太多的不滿(mǎn)。我只追了前20集,后來(lái)的劇情都在各種各樣的...
    蘭馨若冰閱讀 572評(píng)論 8 12

友情鏈接更多精彩內(nèi)容