iOS之深入解析内存分配的五大区
生活随笔
收集整理的這篇文章主要介紹了
iOS之深入解析内存分配的五大区
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
一、棧區(qū)(Stack)
① 特點
- 棧是系統(tǒng)數(shù)據(jù)結(jié)構(gòu),其對應(yīng)的進程或者線程是唯一的;
- 棧是向低地址擴展的數(shù)據(jù)結(jié)構(gòu);
- 棧是一塊連續(xù)的內(nèi)存區(qū)域,遵循先進后出(FILO)原則;
- 棧的地址空間在 iOS 中是以 0X7 開頭;
- 棧區(qū)一般在運行時分配。
② 存儲
- 棧區(qū)是由編譯器自動分配并釋放的;
- 棧區(qū)主要用來存儲局部變量和函數(shù)的參數(shù),例如函數(shù)的隱藏參數(shù)(id self,SEL _cmd)。
③ 優(yōu)缺點
- 優(yōu)點:由于棧是由編譯器自動分配并釋放的,不會產(chǎn)生內(nèi)存碎片,所以快速高效;
- 缺點:
- 棧的內(nèi)存大小有限制,數(shù)據(jù)不靈活;
- iOS 主線程棧大小是 1MB,其他線程是 512KB;
- MAC 只有 8M。
- 在Stack space 資料中均有說明,如下:
總結(jié)
以上是生活随笔為你收集整理的iOS之深入解析内存分配的五大区的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Swift之深入解析“属性”的底层原理
- 下一篇: Metal之加载TGA与PNG/JPEG