iOS内存五大区

1,274 阅读1分钟

小谷底层合集

内存五大区

    1. 在iOS开发中,平常大家都会说,堆区栈区,都是存在虚拟内存。今天来浅谈一波存在虚拟内存的五大区
    1. 内存五大区包括:堆区栈区全局区常量区代码区
    1. 有个比较形象的图:

1.1. 栈区

  • 栈区由编译器分配和释放,存放程序临时创建的函数,局部变量等。是一块连续的内存空间。(由于栈区比较小,所以弥足珍贵)

1.2. 堆区

  • 堆区由程序员分配和释放。存放运行中被动态分配的内存段,堆区的内存区域不连续(类似于链表结构)。所以容易产生内存碎片化。

1.3. 全局静态区

  • 全局静态区是编译时分配的内存空间,在程序运行过程中,此内存中的数据一直存在,程序结束后由系统释放

1.4. 常量区

  • 常量区是编译时分配的内存空间,在程序结束后由系统释放。存放的是常量,是一块特殊的区域

1.5. 代码区

  • 代码区存放函数的二进制代码(只读)