冰镇柠檬茶

这里是我写一些感想和一些新发现的地方。

谈谈iPhone6的内存管理机制与处理器

      

    今天我和一位同学谈到iPhone6和iPhone6 plus虽然只有1G 运行内存(RAM),却比拥有4G运行内存的Android手机要快,一般人都会敷衍回答:"iOS系统优化好呗!",但一旦问其中原理,却不能仔细回答,所以我今天打算写一篇博客谈谈关于iPhone手机系统iOS的内存管理机制:

        对于iOS和Android系统手机来说,设备的内存(运行内存RAM)都是有限的。在我们开了一大堆应用程序,快要把内存占满的时候,为了维持正常运行,iOS和Android都会Kill掉一些后台进程,这个行为也称为“垃圾回收机制”。

        但需要注意的是,iOS和Android“收垃圾”的方式不甚相同。iOS会依次把最老的应用直接关闭掉,所以很多朋友在切换到很老的后台App时会发现,它们都会从标题界面重新启动。

        相比之下,Android不会直接关掉App,而是筛选出其中的一些无用对象,率先把它们Kill掉,从而释放部分内存。但只要你不手动关,这些后台程序都不会自动消失。所以就算你今天上午只和朋友聊了一句话,晚上再从后台调出微信,画面也肯定还停留在和朋友那一句话的对白界面上。

        因此,苹果设备就算只有1GB运行内存,你正在用的App也绝对不会卡,同时更多内存会消耗更多电能,这也是苹果的考虑之一;而Android后台程序不会自动被关闭,需要提供更多的内存(2GB、3GB甚至更多)才能保证系统流畅运行。

        一个手机系统不可能完美,就像世界上不可能有绝对客观完美的事物,iOS和Android两个系统也都会有利有弊。

        有人把iOS的这种"垃圾回收机制"叫做"抢占式内存管理方式",但为了流畅的同时也造成了一定的弊端,那就是当我们打开一个占用内存很大的游戏的时候,那么可能QQ、微信、易信、Lofter、微博这些软件都会被自动关掉,你若想切换回这些软件,就需要经历一段重复的启动过程,当你的朋友圈看完了,微博也赞了,空间也刷了,图片也发了,当你想去玩刚刚正在进行的游戏时,但愿你还能回到刚才游戏暂停的位置。另外当你在Safari打开多个标签页,想切换回老的标签页是,你也可能发现那老的标签页一片空白,需要重新加载。

       当然 说到Android,虽然有大内存,当开启的应用前台后台都会占用内存,当开启大量应用会明显感到卡顿,但是当你切换之前的应用时,会完整地来到你面前,不用重新启动。Android手机的利弊可见于此。

    总而言之,一个系统有其好的地方,也有不好的地方,并不是简单的一个比另一个好的关系,毕竟适合自己的才是最好的,不是吗?

总结:iOS的后台程序并不像Android一样在后台一直运行,我们在iOS后台所看到的运行程序,其实只是我们最近的使用记录,就跟网页浏览记录一样;而Android后台运行程序如果没手动关闭退出,它们就会一直在后台中运行,这样系统就需要更多的运行内存来给这些应用程序。所以,这也是直接导致iOS只需要双核1GB运行内存就可以保持很顺畅了,而Android却要达到4GB内存,八核的CPU处理器。




苹果手机iPhone的CPU:

A6 处理器   32位ARMv7架构,首次使用自主设计架构Swift

A7处理器    首次使用64位ARMv8架构Cyclone

A8 处理器    iPhone 6用的是A8处理器,这是苹果基于ARM授权,使用64位ARMv8架构,自行研发的一颗芯片。苹果基于对ARMv8的研究与调整,得出cyclone(飓风)架构,支持64位指令集。此架构首次出现是在iPhone 5S上,当时采用cyclone架构的A7芯片是移动端第一款64位处理器,虽然是双核处理器,运行频率也只有1.3GHz,相比较安卓机中常见的2.0GHz明显低了不少,但是因为每个时钟周期最多可以同时解码、发射、执行、收回6个指令/微操作,排序缓冲大小是A6处理器的四倍多。对于A8处理器,苹果依旧是发挥强大的芯片设计能力,第二代cyclone架构,同样是64位,缓存也还是64k(一级缓存)、1MB(二级缓存)、4MB(三级缓存),不过在制造工艺上已经进入了20nm时代,这又将同期的骁龙处理器的28nm制程甩在身后,目前也就猎户座5433能够勉强追上。iPhone 的内部芯片实际上也是业界领先的,这种领先并不像体现在四核、八核这样简单粗暴的数量上,而是不断深挖芯片潜力,在尽可能低功耗的基础下,最大化程度榨出其性能。

    


上一篇 下一篇
评论
©冰镇柠檬茶 | Powered by LOFTER