iOS 內(nèi)存分區(qū)和分配

1? RAM ROM

  RAM:運(yùn)行內(nèi)存媳友,不能掉電存儲(chǔ)风科。ROM:存儲(chǔ)性?xún)?nèi)存撒轮,可以掉電存儲(chǔ)乞旦,例如內(nèi)存卡、Flash题山。

?????由于RAM類(lèi)型不具備掉電存儲(chǔ)能力(即一掉電數(shù)據(jù)消失)兰粉,所以app程序一般存放于ROM中。RAM的訪問(wèn)速度要遠(yuǎn)高于ROM顶瞳,價(jià)格也要高玖姑。

2 ?App程序啟動(dòng)

? ??App程序啟動(dòng)裹驰,系統(tǒng)會(huì)把開(kāi)啟的那個(gè)App程序從Flash或ROM里面拷貝到內(nèi)存(RAM)疮鲫,然后從內(nèi)存里面執(zhí)行代碼。

? ? 另一個(gè)原因是CPU不能直接從內(nèi)存卡里面讀取指令(需要Flash驅(qū)動(dòng)等等)嗦哆。

3??內(nèi)存分區(qū):

?????棧區(qū)(stack):存放的局部變量符喝、先進(jìn)后出闪彼、一旦出了作用域就會(huì)被銷(xiāo)毀;函數(shù)跳轉(zhuǎn)地址协饲,現(xiàn)場(chǎng)保護(hù)等畏腕;

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 程序猿不需要管理?xiàng)^(qū)變量的內(nèi)存;

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? (棧區(qū)地址從高到低分配)囱稽;?????

?????堆區(qū)(heap):堆區(qū)的內(nèi)存分配使用的是alloc郊尝;

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 需要程序猿管理內(nèi)存二跋;

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ARC的內(nèi)存的管理战惊,是編譯器再便宜的時(shí)候自動(dòng)添加 retain、release扎即、autorelease吞获;

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? (堆區(qū)的地址是從低到高分配)

?????全局區(qū)/靜態(tài)區(qū)(static):

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 包括兩個(gè)部分:未初始化過(guò) 、初始化過(guò)谚鄙;

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 也就是說(shuō)各拷,(全局區(qū)/靜態(tài)區(qū))在內(nèi)存中是放在一起的,初始化的全局變量和靜態(tài)變量在一塊區(qū)域闷营, 未初始化的全局變量和未初始化的靜態(tài)變量在相鄰的另一塊區(qū)域烤黍;

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?eg:int a;未初始化的。int a = 10;已初始化的傻盟。

?????常量區(qū):常量字符串就是放在這里速蕊;

?????代碼區(qū): 存放App代碼; ? ? ? ?

? ? 如下圖所示:代碼區(qū)存放于低地址娘赴,棧區(qū)存放于高地址规哲。區(qū)與區(qū)之間并不是連續(xù)的。

a

4 ?注意事項(xiàng)

?? 在iOS中诽表,堆區(qū)的內(nèi)存是應(yīng)用程序共享的唉锌,堆中的內(nèi)存分配是系統(tǒng)負(fù)責(zé)的隅肥;

? ?系統(tǒng)使用一個(gè)鏈表來(lái)維護(hù)所有已經(jīng)分配的內(nèi)存空間(系統(tǒng)僅僅紀(jì)錄,并不管理具體的內(nèi)容)袄简;

? ?變量使用結(jié)束后腥放,需要釋放內(nèi)存,OC中是根據(jù)引用計(jì)數(shù)==0痘番,就說(shuō)明沒(méi)有任何變量使用該空間捉片,那么系統(tǒng)將直接收回;

?當(dāng)一個(gè)app啟動(dòng)后汞舱,代碼區(qū)伍纫,常量區(qū),全局區(qū)大小已固定昂芜,因此指向這些區(qū)的指針不會(huì)產(chǎn)生崩潰性的錯(cuò)誤莹规。而堆區(qū)和棧區(qū)是時(shí)時(shí)刻刻變化的(堆的創(chuàng)建銷(xiāo)毀,棧的彈入彈出)泌神,所以當(dāng)使用一個(gè)指針指向這兩個(gè)區(qū)里面的內(nèi)存時(shí)良漱,一定要注意內(nèi)存是否已經(jīng)被釋放,否則會(huì)產(chǎn)生程序崩潰(也即是野指針報(bào)錯(cuò))欢际。


5母市、其它操作系統(tǒng)

  iOS是基于UNIX、Android是基于Linux的损趋,在Linux和unix系統(tǒng)中患久,內(nèi)存管理的方式基本相同;

? ? ? Android應(yīng)用程序的內(nèi)存分配也是如此浑槽。除此以外蒋失,這些應(yīng)用層的程序使用的都是虛擬內(nèi)存,它們都是建立在操作系統(tǒng)之上的桐玻,只有開(kāi)發(fā)底層驅(qū)動(dòng)或板級(jí)支持包時(shí)才會(huì)接觸到物理內(nèi)存篙挽,

? ? ? 舉例:在嵌入式Linux中,實(shí)際的物理地址只有64M甚至更小镊靴,但是虛擬內(nèi)存卻可以高達(dá)4G;

轉(zhuǎn)載自:http://blog.csdn.net/yang198907/article/details/50212925

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末铣卡,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子偏竟,更是在濱河造成了極大的恐慌煮落,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,607評(píng)論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件苫耸,死亡現(xiàn)場(chǎng)離奇詭異州邢,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,239評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén)量淌,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)骗村,“玉大人,你說(shuō)我怎么就攤上這事呀枢∨吖桑” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 164,960評(píng)論 0 355
  • 文/不壞的土叔 我叫張陵裙秋,是天一觀的道長(zhǎng)琅拌。 經(jīng)常有香客問(wèn)我,道長(zhǎng)摘刑,這世上最難降的妖魔是什么进宝? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,750評(píng)論 1 294
  • 正文 為了忘掉前任,我火速辦了婚禮枷恕,結(jié)果婚禮上党晋,老公的妹妹穿的比我還像新娘。我一直安慰自己徐块,他們只是感情好未玻,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,764評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著胡控,像睡著了一般扳剿。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上昼激,一...
    開(kāi)封第一講書(shū)人閱讀 51,604評(píng)論 1 305
  • 那天庇绽,我揣著相機(jī)與錄音,去河邊找鬼癣猾。 笑死敛劝,一個(gè)胖子當(dāng)著我的面吹牛余爆,可吹牛的內(nèi)容都是我干的纷宇。 我是一名探鬼主播,決...
    沈念sama閱讀 40,347評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼蛾方,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼像捶!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起桩砰,我...
    開(kāi)封第一講書(shū)人閱讀 39,253評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤拓春,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后亚隅,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體硼莽,經(jīng)...
    沈念sama閱讀 45,702評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,893評(píng)論 3 336
  • 正文 我和宋清朗相戀三年煮纵,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了懂鸵。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片偏螺。...
    茶點(diǎn)故事閱讀 40,015評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖匆光,靈堂內(nèi)的尸體忽然破棺而出套像,到底是詐尸還是另有隱情,我是刑警寧澤终息,帶...
    沈念sama閱讀 35,734評(píng)論 5 346
  • 正文 年R本政府宣布夺巩,位于F島的核電站,受9級(jí)特大地震影響周崭,放射性物質(zhì)發(fā)生泄漏柳譬。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,352評(píng)論 3 330
  • 文/蒙蒙 一续镇、第九天 我趴在偏房一處隱蔽的房頂上張望征绎。 院中可真熱鬧,春花似錦磨取、人聲如沸人柿。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,934評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)凫岖。三九已至,卻和暖如春逢净,著一層夾襖步出監(jiān)牢的瞬間哥放,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,052評(píng)論 1 270
  • 我被黑心中介騙來(lái)泰國(guó)打工爹土, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留甥雕,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,216評(píng)論 3 371
  • 正文 我出身青樓胀茵,卻偏偏與公主長(zhǎng)得像社露,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子琼娘,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,969評(píng)論 2 355