OC 30 day
开发一个项目,内存管理最直接影响一个项目的品质。意味着一个好的内存管理会让项目的运行效率优良;反之,效能不好,还有可能导致项目崩溃。
内存的作用,就是储存数据。
声明一个变量,然後将数据储存进去。
局部变量,当局部变量的作用预备执行完毕之後,这个局部变量就会被系统立即回收。
OC对象。使用C函数申请的动态空间。
未初始化的全局变量,静态变量。一但初始化就回收,并转存到数据段之中。
已经初始化的全局变量,静态变量,直到程序结束得时候才会被回收。
代码,程序结束得时候,系统会自动回收储存在代码段的数据。
stack,BSS,数据段,代码段的数据回收是由系统自动完成的,不需要我们干预。
BSS是什麽?
因为宣告一段空间很快
而且又不是动态的
在程序一开始时就allocate一段空间
但是如果都要先初始化成某个值,那就消耗资源
如果你宣告了很多
却都没使用
那就浪费资源
所以,先画出来范围
iphone内存机制,如果一个APP占用的内存超过40M,就会收到一个警告。45M,又会收到第二个警告。如果超过120M,APP就会直接闪退。
当有人在使用这个对象的时候,这个对象就不能回收。
只有在没有任何人使用这个对象的时候,才可以回收。
那麽我们要如何知道这个对象有没有人在使用呢。
我们今天的主角除来啦?
每一个对象都有一个属性,叫做retainCount。叫做引用计数器。类型是unsigned long 占据8个字节。引用计数器的作用:用来记录当前这个对象有多少个人在使用它。
手动内存管理
当多一个人使用对象的时候,手动发送retain消息;少一个人使用时,手动发送release消息。
自动内存管理
系统自动在合适的地方发送retain与release消息。
我: 哇~ 同学你有好多资源是怎麽来的啊? 同学: 你猜猜看,猜错的话我就要检查你大脑发育有没有正常...
在 Day2 提到什麽是用於生产的机械学习 ML in Production ,今天来谈用於生产的机...
思考重点 为甚麽要设计UDP? UDP对比TCP的优势? 核心知识 UDP与TCP的差别 众所皆知,...
TurnedOnTimesView 今天来认识看看这个看名字我也不清楚是啥? 打开时间线? 喔!用时...
上传LINE提供的范例回声机器人 第一步:先至LINE提供的GITHUB位置下载其资料夹,此处我们用...