2019年9月26日,华为年度旗舰Mate30系列在上海发布,除了传统的顶级硬件配置外,在EMUI系统级别也有诚意,大大提高了系统的顺畅性和稳定性。

关于软件性能优化,华为消费者业务首席执行官馀承东表示,EMUI10配备了下一代gpu涡轮,另一项未知技术是“确定延迟引擎”。
据馀承东报道,“拥有固定延迟引擎的EMUI10在平均响应延迟和性能变动方面得到改善,完成延迟减少了31%,延迟变动率减少了55%。 在任何场合,用户体验的流程都是一贯的。 ’他说

但是,很多人可能不明白,还是“确定滞后引擎”,为什么会给手机带来稳定流畅的体验呢? 这也从安卓资源调度策略谈起。
无力的Linux资源调度
人们知道,安卓系统起源于Linux,安卓系统资源调度也扎根于Linux内核。 由于手机与PC相比没有丰富的资源和复杂多变的使用场景,来自Linux的资源调度策略越来越令人不安,安卓手机经常会遇到令人费解的卡尔顿。

要改变这种现状,必须从CPU调度、内存调度和IO三个方面进行操作,并且必须运行Linux内核。
首先,在Linux中,CPU调度策略倾向于公平安排,但是Android类似于当前“僧多粥少”的社会竞争状态,因为不是合时的调度,所以在手机上CPU呼叫的精确度和效率被打折。
接下来,由于内存分配和回收没有区分上一个后台进程的能力,系统将得到公平的处理,无论上一个后台启动的内存请求和后台启动的内存请求如何。 这会导致无序的内存竞争资源(如果系统的多任务并行),从而导致卡尔顿。
第三,大多数蜂窝电话的所有操作都涉及读写( IO )并且系统发生大量IO请求,超过蜂窝电话存储的并发处理能力时,无法及时处理的IO请求将被缓存到系统的软件队列和存储硬件队列中
确保延迟引擎不再使后台无序
出生的确延期了引擎,使EMUI更快地平滑、稳定下来。
为了这项黑科学技术,华为投入数百名技术专家,近两年来开发出来的。 在对多年安卓系统的深入理解和持续创新实践的基础上,再次对整个安卓系统进行了从框架到内核的大手术。
如上所述,如果Linux内核的资源调度策略失败,后台应用程序过度消耗CPU、内存或IO,则延迟引擎的三个变革“VIP优先级调度”、“优先级校正”和“保留服务”将成为实用位置,资源将被实际使用
提供识别延迟引擎初始变革的VIP优先调度服务
像银行的VIP渠道一样,优先进程绕过队列,能够保证执行效率。 不仅如此,华为还改造了网络协议栈,对一些低优先级的网络业务进行了协议上的限制。 网络带宽一定时,尽量保障“前台”业务的IO要求。
确定滞后发动机的第二次变革——纠正优先权,打破任务依赖
由于Linux内核无法识别线程之间的依赖关系,因此如果高优先级任务依赖于低优先级任务,则必须继续低优先级任务。
从而,延迟引擎首先重新设计相关数据结构,提供CPU和IO调度器的业务识别能力,以及哪个线程实际上在哪个时间段与用户操作相关联。
例如,a把钱取出到自动取款机,b排列在a的后面进行存款。 这时,现金刚丢了,等银行给自动取款机补充资金,或者提高b优先级,先存钱。 两者的优劣很高。
这样的“前台”私有化CPU和IO的个性化,保证了用户最好的体验。
确定延迟引擎的第三次变革——在系统中“确保服务先知的前瞻性”
关于这一点,首先比喻城市道路公共汽车专用车道。
城市公共汽车专用通道是公共汽车在特定时间通行的专用通道,主要功能是公共汽车网络应对不同高峰时段和突发情况的阻塞。 在高峰时段,城市内部道路发挥保障平稳的作用。
Linux的传统调度策略增强了延迟引擎,使其能够准确识别哪些任务是“总线”。 决定这些任务是否能走“公共汽车专用通道”,如果是,事先预约相关资源,提高该任务的处理效率,保证用户操作路径上的重要资源供给。
如果将上述例子应用于存储器调度,则智能前台调度能够确保“前台”任务请求存储器优先分配,减少进入低速路径的次数,在高负载下缓和存储器抖动现象。
EMUI创新背后“无人区”探析
从EMUI5.0开始,华为陆续发表了“连续18个月平滑”的革命性体验、GPU涡轮、EROFS超级文件系统、方舟编译器、延迟引擎的决定等系统内核的变更。 Android的智能手机从根本上突破了使用纸箱的弊端,之后大大改变了Android的用户体验。
EMUI不断“进化”,这需要投入大量的时间和精力进行研究开发,每次的尝试都是华为探索“无人区”。 由于深层次的技术和人才积累,华为系统的极限体验的探索还在继续,华为还蕴藏着多少“黑色技术”,让我们一起来关注一下吧。