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