美文网首页
浅谈iOS的内存管理机制

浅谈iOS的内存管理机制

作者: adaodao3056 | 来源:发表于2020-10-19 07:59 被阅读0次

存储分布

栈区(heap):由系统去管理。地址从高到低分配。先进后出。会存一些局部变量,函数跳转跳转时现场保护(寄存器值保存于恢复),这些系统都会帮我们自动实现,无需我们干预。所以大量的局部变量,深递归,函数循环调用都可能耗尽栈内存而造成程序崩溃 。
堆区(stack):需要我们自己管理内存,alloc申请内存release释放内存。创建的对象也都放在这里。 地址是从低到高分配。堆是所有程序共享的内存,当N个这样的内存得不到释放,堆区会被挤爆,程序立马瘫痪。这就是内存泄漏。
全局区/静态区(staic):全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在一块区域, 未初始化的全局变量和未初始化的静态变量在相邻的另一块区域。程序结束后有系统释放。
常量区:常量字符串就是放在这里的,还有const常量。
代码区:存放App代码,App程序会拷贝到这里。

6545546-79ada51ce86aee82.png

内存管理方式

Object-C如何进行内存管理:ARC && MRC
OC中每个对象都有一个与之对应的整数,叫“引用计数器”。
Objective-C的内存管理本质是通过引用计数实现的!!!
MRC:在iOS5之前内存是由开发者自己手动管理的,写完代码需要合理插入retain和release,保证内存不会泄露,程序可以正常运行。
ARC:2011年WWDC大会iOS5提出了自动引用计数(ARC),内存的管理由系统进行接管,开发者只需要关注业务逻辑实现,大大提高了开发效率。
什么是引用计数?

引用计数(Reference counting)是一个简单有效管理对象生命周期的方式。
当我们新建一个新对象时候,它的引用计数+1,当一个新指针指向该对象,将引用计数+1。当指针不再指向这个对象时候,引用计数-1,当引用计数为0时,说明该对象不再被任何指针引用,将对象销毁,进而回收内存。

对象内部关联

isa形式
对象成员变量、方法、存储

相关文章

  • 内存管理

    ARC内存管理机制详解理解 iOS 的内存管理

  • ios基础篇内存管理

    前言 最近有时间把ios的基础知识整理一下,浅谈一下对ios内存管理机制的理解,以前也只是会用,知其然但不知其所以...

  • 浅谈iOS内存管理机制

    iOS内存管理机制的原理是引用计数,引用计数简单来说就是统计一块内存的所有权,当这块内存被创建出来的时候,它的引用...

  • 浅谈iOS内存管理机制

    对于我们直接接触ARC的开发者来说很难体会到内存这一概念, 以前工作的时候也基本不关心这个感念 ,最近工作发现...

  • iOS面试知识点

    1、ios内存管理机制 iOS内存管理机制的原理是引用计数,当这块内存被创建后,它的引用计数0->1,表示有一个对...

  • ios常见面试题总结

    1.谈一谈IOS内存管理机制。 IOS内存管理机制的原理是引用计数,当这块内存被创建后引用计数加1,这时若果有另一...

  • 浅谈iOS的内存管理机制

    存储分布 栈区(heap):由系统去管理。地址从高到低分配。先进后出。会存一些局部变量,函数跳转跳转时现场保护(寄...

  • 浅谈iOS的内存管理机制、

    前言: 15年参加工作时的时候已经是ARC的天下了。当初用的最早的Xocde是5.1版本,所以对于内存管理在项目之...

  • iOS 内存管理机制

    iOS内存管理机制原理 iOS内存管理机制的原理是引用计数,引用计数是一个简单而有效的管理对象生命周期的方式。当这...

  • IOS内存管理

    内存概述 内存是用来存啥的? 内存布局 哈希表 垃圾回收(GC) IOS内存管理机制 MRC & ARC T...

网友评论

      本文标题:浅谈iOS的内存管理机制

      本文链接:https://www.haomeiwen.com/subject/rvbipktx.html