iOS内存分布

iOS内存分为:堆区、栈区、代码区、常量区、静态区。

1.堆区:

有程序员控制的区域,需要程序员主动申请、释放。如果程序员不释放,则程序结束时由系统收回。常用的对象alloc、new、malloc、realloc等命令申请的空间为堆区空间,对象通常保存在堆区,指向对象的指针通常在栈区。堆区的效率比栈区低,容量大,可控制性强。

2.栈区:

由编译器自动分配释放的内存空间,如局部变量、函数参数值等。速度快,效率高,不受程序员控制,容量比堆区小。

3.代码区:

用来存放函数二进制代码区域,只允许读操作。系统加载程序代码到内存。无需程序员操作。

4.常量区:

存放常量到区域,如常量字符串、常量整型、常量浮点型等数据,此区域数据由系统管理,无需程序员操作。

5.静态区:

静态区可分为初始化静态区和未初始化静态区,由系统管理,无需程序员操作。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。