iOS-14-內(nèi)存原理

說到內(nèi)存分區(qū),內(nèi)存即指的是RAM

  • 棧區(qū)(stack): 這個一般由編譯器操作,或者說是系統(tǒng)管理,會存一些局部變量,函數(shù)跳轉(zhuǎn)跳轉(zhuǎn)時現(xiàn)場保護(hù)(寄存器值保存于恢復(fù)),這些系統(tǒng)都會幫我們自動實(shí)現(xiàn),無需我們干預(yù)。 所以大量的局部變量,深遞歸,函數(shù)循環(huán)調(diào)用都可能耗盡棧內(nèi)存而造成程序崩潰
  • 堆區(qū)(heap): 一般由程序員管理,比如alloc申請內(nèi)存,free釋放內(nèi)存。我們創(chuàng)建的對象也都放在這里
  • 全局區(qū)(靜態(tài)區(qū) static):全局變量和靜態(tài)變量的存儲是放在一塊的,初始化的全局變量和靜態(tài)變量在一塊區(qū)域, 未初始化的全局變量和未初始化的靜態(tài)變量在相鄰的另一塊區(qū)域。 - 程序結(jié)束后有系統(tǒng)釋放。注意:在嵌入式系統(tǒng)中全局區(qū)又可分為未初始化全局區(qū):.bss段和初始化全局區(qū):data段。舉例:int a;未初始化的。int a = 10;已初始化的。
  • 常量區(qū):常量字符串就是放在這里的,還有const常量
  • 代碼區(qū):存放代碼,app程序會拷貝到這里,程序不是在ROM里面存儲嗎?看下面的舉例
    示例
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

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

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