内存管理系列(一)内存五大区

201 阅读1分钟

在iOS中,内存主要分为栈区、堆区、全局区、常量区、代码区五大区域。 栈区(Stack) 定义

栈是系统数据结构,其对应的进程或者线程是唯一的

栈是向低地址扩展的数据结构

栈是一块连续的内存区域,遵循先进后出(FILO)原则

栈的地址空间在iOS中是以0X7开头

栈区一般在运行时分配

存储

栈区是由编译器自动分配并释放的,主要用来存储

局部变量

函数的参数,例如函数的隐藏参数(id self,SEL _cmd)

优缺点

优点:因为栈是由编译器自动分配并释放的,不会产生内存碎片,所以快速高效

缺点:栈的内存大小有限制,数据不灵活

iOS主线程栈大小是1MB

其他线程是512KB

MAC只有8M