iOS內(nèi)存管理

2018-11-21 17:00 更新

IOS內(nèi)存管理


簡(jiǎn)介

iOS下內(nèi)存管理的基本思想就是引用計(jì)數(shù),通過對(duì)象的引用計(jì)數(shù)來對(duì)內(nèi)存對(duì)象的生命周期進(jìn)行控制。具體到編程時(shí)間方面,主要有兩種方式:

1:MRR(manual retain-release),人工引用計(jì)數(shù),對(duì)象的生成、銷毀、引用計(jì)數(shù)的變化都是由開發(fā)人員來完成。

2:ARC(Automatic Reference Counting),自動(dòng)引用計(jì)數(shù),只負(fù)責(zé)對(duì)象的生成,其他過程開發(fā)人員不再需要關(guān)心其銷毀,使用方式類似于垃圾回收,但其實(shí)質(zhì)還是引用計(jì)數(shù)。

面臨的問題

根據(jù)蘋果說明文檔,面臨的兩個(gè)主要問題是:

釋放或覆蓋的數(shù)據(jù)仍然在使用。這將造成內(nèi)存損壞,通常在應(yīng)用程序崩潰,或者更糟,損壞用戶數(shù)據(jù)。

不釋放不再使用的數(shù)據(jù)會(huì)導(dǎo)致內(nèi)存泄漏。分配的內(nèi)存,內(nèi)存泄漏不會(huì)釋放,即使它從來沒有再次使用。泄漏會(huì)導(dǎo)致應(yīng)用程序的內(nèi)存使用量日益增加,這反過來又可能會(huì)導(dǎo)致系統(tǒng)性能較差或死機(jī)。

內(nèi)存管理規(guī)則

我們創(chuàng)建自己的對(duì)象,當(dāng)他們不再需要的時(shí)候,釋放他們。

保留需要使用的對(duì)象。如果沒有必要必須釋放這些對(duì)象。

不要釋放我們沒有擁有的對(duì)象。

使用內(nèi)存管理工具

可以用Xcode工具儀器的幫助下分析內(nèi)存的使用情況。它包括的工具有活動(dòng)監(jiān)視器,分配,泄漏,僵尸等

分析內(nèi)存分配的步驟

1. 打開一個(gè)現(xiàn)有的應(yīng)用程序。

2. 選擇產(chǎn)品,配置文件如下所示

iOS內(nèi)存管理

3.在以下界面中選擇 Allocations 和 Profile。

iOS內(nèi)存管理

4. 我們可以看到不同對(duì)象的內(nèi)存使用情況

5. 你可以切換視圖控制器查看內(nèi)存是否釋放。

iOS內(nèi)存管理

6.同樣我們可以使用 Activity Monitor 來查看內(nèi)存在應(yīng)用程序中的分配的情況。

iOS內(nèi)存管理

7. 這些工具可以幫助我們了解內(nèi)存的使用情況及在什么地方可能發(fā)生泄漏。


以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)