关于IOS内存机制的较深入分析

本文深入探讨了iOS系统的内存调用机制、软件后台程序运行方式、内存充足时应用释放内存的内在交换机制及内存不足时的应用释放策略。强调了iOS系统通过内存管理机制自动释放内存以保持流畅,无需依赖第三方内存清理工具。
首先说明这些是根据开发者们的文章复制黏贴组合得来的,有不正确的还请指正
懒得看的可以直接往下看结论

1内存调用机制
iOS本身的内存调用机制与Mac同源,但是与Windows有本质的区别。
Windows为了兼容古老和不规范的程序,允许程序直接控制硬件,导致windows系统权限不足,而许多Windows程序也不规范,因此在退出进程后往往许多内存并没有真正还给系统变成了空闲内存,导致时间一长系统可用内存越来越少,所以,Windows系统之下,需要一款软件进行内存优化并且及时释放空闲内存。
但Mac或者iOS却不是这样。Mac/iOS系统会将内存分为自由(free)、空闲(inactive)、活跃(active)以及固定(wired)四个类型,并且根据系统需要进行相互转化,所以如果系统本身没有Bug的话,内存一旦能够充足供应,系统就不会出现内存枯竭。
不过问题依旧产生了,随着iOS版本的升级,设备开始出现缓慢或者内存不足的现象。姑且忽略Bug的原因,其本质应该是系统越来越高的多进程需求,让低版本的设备内存开始吃力,而这并不是系统原因而是硬件原因。
2软件后台程序运行机制
下面 Speirs 描述了iOS是如何在后台处理程序的:
关闭 - 这个程序以彻底关闭或尚未被开启
待用 - 程序处于开启状态,但是并未收到任何指令(例如:程序开启但用户锁定了机器)
使用中 - 正常使用中的程序
后台 - 程序不在开启状态但仍然在后台运行代码暂停 - 程序仍然在使用内存但并未运行代码
技术上来讲,所有的程续在按Home键后只有5秒钟的后台时间,iOS在将这些程序变为暂停状态前给予它们一个非常有限的时间来清除所需清除的内容,之后程序变会被保留在记忆体中以便可以快速的开启它。
另外,当程序有特殊需求在后台运行更久而并非5秒钟时,Speirs 使用了 Instacast 做为例子对其进行了讲解,当 Instacast 正在后台下载 podcasts 时它会告诉iOS系统它正在下载东西,这样使得iOS系统给于其多10分钟的时间而并非5秒钟的时间,一但10分钟时限到达后 Instacast 将会被强制切换至暂停模式。当然还有相当一部分的程序是长期在后台工作的,如邮件、音乐、GPS、Voip、电子报等。这些程序都会一直在后台运行直至它完成它本身的任务。
3内存充足时应用释放内存的内在交换机制
iOS平台的内存管理采用引用计数的机制;当创建一个对象时使用alloc或者allWithZone方法时,引用计数就会+1;当释放对象使用release方法时,引用计数就是-1;这就意味着每一个对象都会跟踪有多少其他对象引用它,一旦引用计数为0,该对象的内存就会被释放掉;另外,iOS也提供了一种延时释放的机制AutoRelease,以这种方式申请的内存,开发者无需手动释放,系统会在某一时机释放该内存。
4 内存不足时应用释放内存的内在交换机制
ios不是神级存在,也有内存不足的时候
由于iOS平台的内存管理机制,不支持虚拟内存,所以在内存不足的情况,不会去ROM上创建虚拟内存;所以一旦出现内存不足的情况,iOS平台会通知所有已经运行的app,不论是前台app还是后台挂起的app,都会收到 memory warning的notice;一旦app收到memory warning的notice,就应该回收占用内存较大的变量;
1: app收到系统发过来的memory warning的notice;
2: app释放占用较大的内存;
3: 系统回收此app所创建的autorelease的对象;
4: app返回到已经打开的页面时,系统重新调用viewdidload方法,view重新加载页面数据;重新显示。
5结论
IOS不需要内存清理工具,系统会自动释放内存以保证流畅。
另外这些工具也无法对内存进行直接操作,除非越狱。
说白了IOS的后台相当于一个历史记录,只不过记录里的程序已经预先载入内存了。
如果未越狱的机器在运行第三方软件时卡了,那只能说明是硬件不行了,该换了。
再罗嗦一句,那些所谓的电池医生也都是骗人的,因为IOS根本没有api来允许程序干涉电池状态,唯一的几个关于电池的api只是用来看电量的罢了

最后附上一段视频,
鸟语未翻译
视频来自:优酷
乐播投屏是一款简单好用、功能强大的专业投屏软件,支持手机投屏电视、手机投电脑、电脑投电视等多种投屏方式。 多端兼容与跨网投屏:支持手机、平板、电脑等多种设备之间的自由组合投屏,且无需连接 WiFi,通过跨屏技术打破网络限制,扫一扫即可投屏。 广泛的应用支持:支持 10000+APP 投屏,包括综合视频、网盘与浏览器、美韩剧、斗鱼、虎牙等直播平台,还能将央视、湖南卫视等各大卫视的直播内容一键投屏。 高清流畅投屏体验:腾讯独家智能音画调校技术,支持 4K 高清画质、240Hz 超高帧率,低延迟不卡顿,能为用户提供更高清、流畅的视觉享受。 会议办公功能强大:拥有全球唯一的 “超级投屏空间”,扫码即投,无需安装。支持多人共享投屏、远程协作批注,PPT、Excel、视频等文件都能流畅展示,还具备企业级安全加密,保障会议资料不泄露。 多人互动功能:支持多人投屏,邀请好友加入投屏互动,远程也可加入。同时具备一屏多显、语音互动功能,支持多人连麦,实时语音交流。 文件支持全面:支持 PPT、PDF、Word、Excel 等办公文件,以及视频、图片等多种类型文件的投屏,还支持网盘直投,无需下载和转格式。 特色功能丰富:投屏时可同步录制投屏画面,部分版本还支持通过触控屏或电视端外接鼠标反控电脑,以及在投屏过程中用画笔实时标注等功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值