「分配成功率」对话工程师:OPPO 如何斩获双料性能冠军
4月1日,安兔兔发布了2020年3月份Android手机性能榜单,其中OPPO两款手机,OPPO Find X2 Pro和Reno 3 5G分布获得旗舰及中端榜单第一,也是OPPO史上第一次夺得安兔兔双料冠军。
大家都知道,同一个榜单里面,手机的配置是极为相近的。但是为什么同为某个平台,但是却有不一样的排位结果?
实际上,安兔兔的跑分除了对硬件堆料有考核之外,软件的优化也十分重要。而不久前发布的OPPO Find X2 Pro上,搭载的ColorOS 7.1除了UIFirst技术底层的优化,还首创了「内存反碎片化引擎」,极大程度的改善了手机的流畅度。
众所周知,安卓手机因为机型繁多、碎片化严重的原因容易造成系统不稳定、卡顿等问题,手机厂商对安卓的二次开发优化也已经进入了白热化的阶段。在这个阶段,想要做出差异化效果,「内存反碎片化引擎」就显得极为重要。为了搞懂这一技术背后的奥秘,今天,我们就找到了OPPO的驱动工程师 —— 李工,给我们科普一下。
手机的内存分两种:一种是物理内存,就是我们常在手机参数表里面看到的内存的大小。另外还有一种叫虚拟内存,安卓手机中的32bit进程只有4G的虚拟内存空间,安卓系统和众多APP需要在前台运行才能和用户产生交互,在使用手机的过程中会产生虚拟内存碎片化,日积月累之后的碎片会严重影响用户体验。
文章图片
为此,OPPO首创了「内存反碎片化引擎」。
【 「分配成功率」对话工程师:OPPO 如何斩获双料性能冠军】可以先看看账面上的数据,OPPO Find X2 Pro因为搭载了这个「内存反碎片化引擎」,所以系统出现物理碎片化管理的次数下降了99%,因虚拟内存碎片化导致的黑屏、卡顿、闪退的几率下降了93%。
在搞懂OPPO的「内存反碎片化引擎」之前,可以先了解一下什么是“内存碎片化”。举个例子:
房东有两栋房子,每栋房子都可以住10个人,总共可以住20人;
此时来了两个互不相识的旅客,两个人被分配进两栋房子,此时两栋房子各可以住9个人,总共可以住18人;
过了半个小时,来了个旅行团10个人,他们要求10个人要一起住在一栋房子中,但是此时就无法及时分配房子给旅行团了。
从这个例子,我们可以看到房东的房子还可以住18个人,但是为什么十个人的旅行团都没法分配?这就是因为旅行团要求必须10人住一栋,而前面两个旅客却已经占据了两栋房子的床位。
而从内存角度出发,概念也是类似的,系统完整的内存就如例子中的两栋房子,为两个旅客分配床位就像小内存分配,而为旅行团分配床位就像大内存分配,由于小内存“污染”了整体的内存,导致明明系统有足够的内存,但是却分配不出大内存,其中物理内存和虚拟内存针对上面的情况有不同的处理方式:
物理内存:会进行内存碎片化整理,还是上面酒店的例子,酒店会劝说一下单个旅客换房间,如果换成功,就会有一栋房子能满足旅行团10个人的住房需求,但是这个过程由于协调旅客,会导致旅行团入住过程比较久,反应到系统就是大块内存分配比较慢,机器就可能出现卡顿;如果酒店劝说失败,单个旅客不肯搬房间,那就无法满足旅行团的需求了,反应到系统就是大块内存分配失败,可能导致卡顿等问题。
虚拟内存:直接申请虚拟内存失败,反应到机器,可能出现应用黑屏,闪屏甚至是闪退。
根据李工的介绍,虽然目前全球多个手机厂商都有涉及内存碎片化的优化,但是OPPO在ColorOS 7.1上的「内存反碎片化引擎」属于业界首创,效果显著。并且以后搭载ColorOS 7以上版本的机型都会有这个功能,同时针对部分ColorOS 6版本的手机,还会有不同程度的功能下放。几乎等于说,该创新优化会助力极大部分OPPO手机实现性能提升。
右侧的是采用了「内存反碎片化引擎」,启动速度提升明显
目前大部分厂商针对内存碎片化的优化方案并不突出,物理内存碎片化问题尽管大家都已经发现了,但是目前也没有很好的根治方法。而OPPO的「内存反碎片化引擎」,则是在尽量改善物理内存碎片化的基础上,对“虚拟内存碎片化”进行了独家的优化。
推荐阅读
- 女子23年前分配工作至今未有通知,“单位”仲裁解除劳动关系
- 知行动力|对话|敢为,是日产布局未来汽车的重大突破
- |隐藏在特斯拉背后的艺术家 对话首席设计师Franz
- 奥迪|AUTO设区 | 对话奥迪设计师:坚持“以人为本”的设计理念
- 啊晶聊汽车|对话 | 施戈迈:金杯品牌要放下偶像包袱 两年半内推更多新车
- 对话车生活|2020年最值得购买的10款新能源纯电动汽车
- 智电汽车|对话R汽车高层,造车新势力国家队,它如何用科技兑现想象?
- 趣头条|捷尼赛思GV70部分配置曝光 用车安全性将大幅提升
- |未来的趋势不是千篇一律,对话福特中国设计中心
- 南京对话蒙特利尔:寻求文化创意合作契机